51,411
社区成员
发帖
与我相关
我的任务
分享
package Que2;
import java.util.Scanner;
public class Que2Main {
public static void main(String[] args){
int n;
int fNum;
Scanner in=new Scanner(System.in);
System.out.print("请输入阶数n:");
while(!in.hasNextInt()){
System.out.println("输入出错,请重新输入阶数n:");
}
n=in.nextInt();
lowMat lm=new lowMat(n);
lm.assign();
fNum=in.nextInt(); //Exception in thread "main" java.util.NoSuchElementException
System.out.print("请输入要查找的数字:");
lm.find(fNum);
lm.outPut();
}
}
[/quote]
学长厉害了,说得真好。
想请教一下学长:
我现在大二,想在java方面做点东西,目前java的基本语法也学得差不多了,就是欠缺一些实践,所以目前在找一些实际项目的源码想看看。我看学长说什么设计模式之类的,就觉得自己还是欠缺好多,我看学长对java也挺擅长的,想问问学长有什么建议吗?比如一些学习资料的推荐什么的。[/quote]
Java要看的书还是挺多的吧,我感觉基础会了以后再看一遍《Java编程思想》,读完这本书以后我想Java基础方面的东西就已经完完全全打牢了,然后可以试着读一下《深入理解Java虚拟机——JVM高级特性与最佳实践》,这是一本讲Java虚拟机原理的,也可以读一读《Java多线程编程核心技术》,这是专门讲多线程编程的。还可以再读一读《Effective Java》,有能力就读英文原版,因为中文版里有一点地方翻译不太合适。我想大一大二能读完这些东西就已经非常厉害了。这些东西越早接触越好,不然像我大三大四了才开始看这些书,就感觉大一大二学到的知识真的是连皮毛都算不上。除了Java相关的书,像数据库、操作系统、数据结构、算法之类的书也是有很多很经典的,对于计算机专业来说也是比较重要的,我现在就在读《深入理解计算机系统》。最后附上一张图
[/quote]
谢谢学长,我有《java核心技术 》,卷一已经基本看完了。但是感觉跟作者在思维上差得远,很多地方可能以一种别的思维理解会很容易,会觉得自己还是菜的很,总的说,觉得这本书不适合我这个阶段读,花费的时间太多,而得到的回报太少。《深入理解计算机系统》是本好书呐,写得真棒,可是还是觉得水平不够。所以学长觉得《Java编程思想》比《java核心技术 》更适合初学者?[/quote]
不是啊,我是说先入门了以后在看这本书。。。。[/quote]
额,心塞塞。哈哈哈,谢谢学长了啊,我今天从一位老师处听到了你的名字。说不定我们还有机会见面哦[quote=引用 14 楼 kingslave1 的回复:] 然而我并没有上过他的课,你应该是认错人了吧。。。。
然而我并没有上过他的课,你应该是认错人了吧。。。。
[quote=引用 11 楼 imilano 的回复:] [quote=引用 10 楼 kingslave1 的回复:] [quote=引用 9 楼 imilano 的回复:] [quote=引用 8 楼 kingslave1 的回复:] [quote=引用 7 楼 imilano 的回复:] [quote=引用 6 楼 kingslave1 的回复:] [quote=引用 5 楼 imilano 的回复:]或是因为我基础没掌握好? 倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
[/quote]
学长厉害了,说得真好。
想请教一下学长:
我现在大二,想在java方面做点东西,目前java的基本语法也学得差不多了,就是欠缺一些实践,所以目前在找一些实际项目的源码想看看。我看学长说什么设计模式之类的,就觉得自己还是欠缺好多,我看学长对java也挺擅长的,想问问学长有什么建议吗?比如一些学习资料的推荐什么的。[/quote]
Java要看的书还是挺多的吧,我感觉基础会了以后再看一遍《Java编程思想》,读完这本书以后我想Java基础方面的东西就已经完完全全打牢了,然后可以试着读一下《深入理解Java虚拟机——JVM高级特性与最佳实践》,这是一本讲Java虚拟机原理的,也可以读一读《Java多线程编程核心技术》,这是专门讲多线程编程的。还可以再读一读《Effective Java》,有能力就读英文原版,因为中文版里有一点地方翻译不太合适。我想大一大二能读完这些东西就已经非常厉害了。这些东西越早接触越好,不然像我大三大四了才开始看这些书,就感觉大一大二学到的知识真的是连皮毛都算不上。除了Java相关的书,像数据库、操作系统、数据结构、算法之类的书也是有很多很经典的,对于计算机专业来说也是比较重要的,我现在就在读《深入理解计算机系统》。最后附上一张图
[/quote]
谢谢学长,我有《java核心技术 》,卷一已经基本看完了。但是感觉跟作者在思维上差得远,很多地方可能以一种别的思维理解会很容易,会觉得自己还是菜的很,总的说,觉得这本书不适合我这个阶段读,花费的时间太多,而得到的回报太少。《深入理解计算机系统》是本好书呐,写得真棒,可是还是觉得水平不够。所以学长觉得《Java编程思想》比《java核心技术 》更适合初学者?[/quote]
不是啊,我是说先入门了以后在看这本书。。。。[/quote]
额,心塞塞。哈哈哈,谢谢学长了啊,我今天从一位老师处听到了你的名字。说不定我们还有机会见面哦[/quote]
啥?你不是在逗我吧?[/quote]怎么会呢。嘿嘿,季一木老师。[quote=引用 10 楼 kingslave1 的回复:] [quote=引用 9 楼 imilano 的回复:] [quote=引用 8 楼 kingslave1 的回复:] [quote=引用 7 楼 imilano 的回复:] [quote=引用 6 楼 kingslave1 的回复:] [quote=引用 5 楼 imilano 的回复:]或是因为我基础没掌握好? 倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
[/quote]
学长厉害了,说得真好。
想请教一下学长:
我现在大二,想在java方面做点东西,目前java的基本语法也学得差不多了,就是欠缺一些实践,所以目前在找一些实际项目的源码想看看。我看学长说什么设计模式之类的,就觉得自己还是欠缺好多,我看学长对java也挺擅长的,想问问学长有什么建议吗?比如一些学习资料的推荐什么的。[/quote]
Java要看的书还是挺多的吧,我感觉基础会了以后再看一遍《Java编程思想》,读完这本书以后我想Java基础方面的东西就已经完完全全打牢了,然后可以试着读一下《深入理解Java虚拟机——JVM高级特性与最佳实践》,这是一本讲Java虚拟机原理的,也可以读一读《Java多线程编程核心技术》,这是专门讲多线程编程的。还可以再读一读《Effective Java》,有能力就读英文原版,因为中文版里有一点地方翻译不太合适。我想大一大二能读完这些东西就已经非常厉害了。这些东西越早接触越好,不然像我大三大四了才开始看这些书,就感觉大一大二学到的知识真的是连皮毛都算不上。除了Java相关的书,像数据库、操作系统、数据结构、算法之类的书也是有很多很经典的,对于计算机专业来说也是比较重要的,我现在就在读《深入理解计算机系统》。最后附上一张图
[/quote]
谢谢学长,我有《java核心技术 》,卷一已经基本看完了。但是感觉跟作者在思维上差得远,很多地方可能以一种别的思维理解会很容易,会觉得自己还是菜的很,总的说,觉得这本书不适合我这个阶段读,花费的时间太多,而得到的回报太少。《深入理解计算机系统》是本好书呐,写得真棒,可是还是觉得水平不够。所以学长觉得《Java编程思想》比《java核心技术 》更适合初学者?[/quote]
不是啊,我是说先入门了以后在看这本书。。。。[/quote]
额,心塞塞。哈哈哈,谢谢学长了啊,我今天从一位老师处听到了你的名字。说不定我们还有机会见面哦[/quote]
啥?你不是在逗我吧?倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
[quote=引用 2 楼 imilano 的回复:] [quote=引用 1 楼 kingslave1 的回复:] 楼主可以再把lowMat这个类的代码贴出来吗?
package Que2;
import java.util.Scanner;
public class lowMat {
private int n;
private int conNum;
private int num;
private int[] lowMat;
lowMat(int n){
this.n=n;
num=n*(n+1)/2+1;
lowMat=new int[num];
}
public void assign(){
int cnt=0;
Scanner in=new Scanner(System.in);
System.out.print("请输入常数C: ");
while(!in.hasNextInt()) {
System.out.println("无效输入,请重新输入:");
}
conNum=in.nextInt();
System.out.println("请依次输入下三角的值:");
while(in.hasNextInt()&&cnt<num-2) {
lowMat[cnt] =in.nextInt();
cnt++;
}
in.close();
System.out.println("输入成功!");
}
public void find(int fNum){
int i;
int j;
int k;
// Scanner in1=new Scanner(System.in);
boolean isFind=false;
// while(!in.hasNextInt()) {
// System.out.println("无效输入,请重新输入:");
if(fNum==conNum)
System.out.println("此数为常数C。");
for(i=0;i<lowMat.length;i++){
if(lowMat[i]==fNum){
for(j=0;j<n;j++){
for(k=0;k<=j;k++){
if(j*n+k==i){
System.out.println("该数的位置为:("+j+","+k+")");
isFind=true;
}
}
}
}
}
if(!isFind)
System.out.println("该数不存在。");
}
public void outPut(){
int i;
int j;
int cnt=1;
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.print(lowMat[i*(i+1)/2+j]+" ");
}
do{
System.out.print(conNum+" ");
}while(cnt++<n-j);
System.out.print("\n");
}
}
}
[/quote]
问题果然是处在这个文件里,
public void assign(){
int cnt=0;
Scanner in=new Scanner(System.in);
System.out.print("请输入常数C: ");
while(!in.hasNextInt()) {
System.out.println("无效输入,请重新输入:");
}
conNum=in.nextInt();
System.out.println("请依次输入下三角的值:");
while(in.hasNextInt()&&cnt<num-2) {
lowMat[cnt] =in.nextInt();
cnt++;
}
in.close();
System.out.println("输入成功!");
}
倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好[/quote]
哇,真的感谢。送花。
还想请教一下:
in.close()是在lowMat那个类里,可出现异常的那个 fNum=in.nextInt()是在主函数中啊,而且我在类中和主函数中分别定义了两个输入流,应该是不会互相干扰的,就算把lowMat类中的输入流关了 ,对主函数中定义的输入流应该也没有影响的吧,可为什么会出现关闭一个影响另一个的情况?或是因为我基础没掌握好? 倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好

楼主可以再把lowMat这个类的代码贴出来吗?
package Que2;
import java.util.Scanner;
public class lowMat {
private int n;
private int conNum;
private int num;
private int[] lowMat;
lowMat(int n){
this.n=n;
num=n*(n+1)/2+1;
lowMat=new int[num];
}
public void assign(){
int cnt=0;
Scanner in=new Scanner(System.in);
System.out.print("请输入常数C: ");
while(!in.hasNextInt()) {
System.out.println("无效输入,请重新输入:");
}
conNum=in.nextInt();
System.out.println("请依次输入下三角的值:");
while(in.hasNextInt()&&cnt<num-2) {
lowMat[cnt] =in.nextInt();
cnt++;
}
in.close();
System.out.println("输入成功!");
}
public void find(int fNum){
int i;
int j;
int k;
// Scanner in1=new Scanner(System.in);
boolean isFind=false;
// while(!in.hasNextInt()) {
// System.out.println("无效输入,请重新输入:");
if(fNum==conNum)
System.out.println("此数为常数C。");
for(i=0;i<lowMat.length;i++){
if(lowMat[i]==fNum){
for(j=0;j<n;j++){
for(k=0;k<=j;k++){
if(j*n+k==i){
System.out.println("该数的位置为:("+j+","+k+")");
isFind=true;
}
}
}
}
}
if(!isFind)
System.out.println("该数不存在。");
}
public void outPut(){
int i;
int j;
int cnt=1;
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.print(lowMat[i*(i+1)/2+j]+" ");
}
do{
System.out.print(conNum+" ");
}while(cnt++<n-j);
System.out.print("\n");
}
}
}
[quote=引用 1 楼 kingslave1 的回复:] 楼主可以再把lowMat这个类的代码贴出来吗?
package Que2;
import java.util.Scanner;
public class lowMat {
private int n;
private int conNum;
private int num;
private int[] lowMat;
lowMat(int n){
this.n=n;
num=n*(n+1)/2+1;
lowMat=new int[num];
}
public void assign(){
int cnt=0;
Scanner in=new Scanner(System.in);
System.out.print("请输入常数C: ");
while(!in.hasNextInt()) {
System.out.println("无效输入,请重新输入:");
}
conNum=in.nextInt();
System.out.println("请依次输入下三角的值:");
while(in.hasNextInt()&&cnt<num-2) {
lowMat[cnt] =in.nextInt();
cnt++;
}
in.close();
System.out.println("输入成功!");
}
public void find(int fNum){
int i;
int j;
int k;
// Scanner in1=new Scanner(System.in);
boolean isFind=false;
// while(!in.hasNextInt()) {
// System.out.println("无效输入,请重新输入:");
if(fNum==conNum)
System.out.println("此数为常数C。");
for(i=0;i<lowMat.length;i++){
if(lowMat[i]==fNum){
for(j=0;j<n;j++){
for(k=0;k<=j;k++){
if(j*n+k==i){
System.out.println("该数的位置为:("+j+","+k+")");
isFind=true;
}
}
}
}
}
if(!isFind)
System.out.println("该数不存在。");
}
public void outPut(){
int i;
int j;
int cnt=1;
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.print(lowMat[i*(i+1)/2+j]+" ");
}
do{
System.out.print(conNum+" ");
}while(cnt++<n-j);
System.out.print("\n");
}
}
}
[/quote]
问题果然是处在这个文件里,
public void assign(){
int cnt=0;
Scanner in=new Scanner(System.in);
System.out.print("请输入常数C: ");
while(!in.hasNextInt()) {
System.out.println("无效输入,请重新输入:");
}
conNum=in.nextInt();
System.out.println("请依次输入下三角的值:");
while(in.hasNextInt()&&cnt<num-2) {
lowMat[cnt] =in.nextInt();
cnt++;
}
in.close();
System.out.println("输入成功!");
}
倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好[quote=引用 8 楼 kingslave1 的回复:] [quote=引用 7 楼 imilano 的回复:] [quote=引用 6 楼 kingslave1 的回复:] [quote=引用 5 楼 imilano 的回复:]或是因为我基础没掌握好? 倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
[/quote]
学长厉害了,说得真好。
想请教一下学长:
我现在大二,想在java方面做点东西,目前java的基本语法也学得差不多了,就是欠缺一些实践,所以目前在找一些实际项目的源码想看看。我看学长说什么设计模式之类的,就觉得自己还是欠缺好多,我看学长对java也挺擅长的,想问问学长有什么建议吗?比如一些学习资料的推荐什么的。[/quote]
Java要看的书还是挺多的吧,我感觉基础会了以后再看一遍《Java编程思想》,读完这本书以后我想Java基础方面的东西就已经完完全全打牢了,然后可以试着读一下《深入理解Java虚拟机——JVM高级特性与最佳实践》,这是一本讲Java虚拟机原理的,也可以读一读《Java多线程编程核心技术》,这是专门讲多线程编程的。还可以再读一读《Effective Java》,有能力就读英文原版,因为中文版里有一点地方翻译不太合适。我想大一大二能读完这些东西就已经非常厉害了。这些东西越早接触越好,不然像我大三大四了才开始看这些书,就感觉大一大二学到的知识真的是连皮毛都算不上。除了Java相关的书,像数据库、操作系统、数据结构、算法之类的书也是有很多很经典的,对于计算机专业来说也是比较重要的,我现在就在读《深入理解计算机系统》。最后附上一张图
[/quote]
谢谢学长,我有《java核心技术 》,卷一已经基本看完了。但是感觉跟作者在思维上差得远,很多地方可能以一种别的思维理解会很容易,会觉得自己还是菜的很,总的说,觉得这本书不适合我这个阶段读,花费的时间太多,而得到的回报太少。《深入理解计算机系统》是本好书呐,写得真棒,可是还是觉得水平不够。所以学长觉得《Java编程思想》比《java核心技术 》更适合初学者?[/quote]
不是啊,我是说先入门了以后在看这本书。。。。[quote=引用 7 楼 imilano 的回复:] [quote=引用 6 楼 kingslave1 的回复:] [quote=引用 5 楼 imilano 的回复:]或是因为我基础没掌握好? 倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
[/quote]
学长厉害了,说得真好。
想请教一下学长:
我现在大二,想在java方面做点东西,目前java的基本语法也学得差不多了,就是欠缺一些实践,所以目前在找一些实际项目的源码想看看。我看学长说什么设计模式之类的,就觉得自己还是欠缺好多,我看学长对java也挺擅长的,想问问学长有什么建议吗?比如一些学习资料的推荐什么的。[/quote]
Java要看的书还是挺多的吧,我感觉基础会了以后再看一遍《Java编程思想》,读完这本书以后我想Java基础方面的东西就已经完完全全打牢了,然后可以试着读一下《深入理解Java虚拟机——JVM高级特性与最佳实践》,这是一本讲Java虚拟机原理的,也可以读一读《Java多线程编程核心技术》,这是专门讲多线程编程的。还可以再读一读《Effective Java》,有能力就读英文原版,因为中文版里有一点地方翻译不太合适。我想大一大二能读完这些东西就已经非常厉害了。这些东西越早接触越好,不然像我大三大四了才开始看这些书,就感觉大一大二学到的知识真的是连皮毛都算不上。除了Java相关的书,像数据库、操作系统、数据结构、算法之类的书也是有很多很经典的,对于计算机专业来说也是比较重要的,我现在就在读《深入理解计算机系统》。最后附上一张图
[/quote]
谢谢学长,我有《java核心技术 》,卷一已经基本看完了。但是感觉跟作者在思维上差得远,很多地方可能以一种别的思维理解会很容易,会觉得自己还是菜的很,总的说,觉得这本书不适合我这个阶段读,花费的时间太多,而得到的回报太少。《深入理解计算机系统》是本好书呐,写得真棒,可是还是觉得水平不够。所以学长觉得《Java编程思想》比《java核心技术 》更适合初学者?[quote=引用 6 楼 kingslave1 的回复:]
[quote=引用 5 楼 imilano 的回复:]
倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
或是因为我基础没掌握好?
[/quote]
[quote=引用 5 楼 imilano 的回复:]或是因为我基础没掌握好? 倒数第二行,你的in.close()把标准输入流给关闭了,回到main方法时就不知道从哪里接收输入了,把in.close()这一句去掉就好
[/quote]
学长厉害了,说得真好。
想请教一下学长:
我现在大二,想在java方面做点东西,目前java的基本语法也学得差不多了,就是欠缺一些实践,所以目前在找一些实际项目的源码想看看。我看学长说什么设计模式之类的,就觉得自己还是欠缺好多,我看学长对java也挺擅长的,想问问学长有什么建议吗?比如一些学习资料的推荐什么的。