Java初学者容易犯的错误有哪些
3个回答
2018-03-21
展开全部
Java错误,主要包括两方面,一种是语法错误,另一种是逻辑错误。
语法错误,也就是我们的编码不符合java 规范,在编译的时候无法通过。通常,我们都是用javac编译我们的源程序,如果代码中存在语法错误,比如某个表达式后缺少分号的时候,编译器就会告诉我们错误信息,编译就此停止。
逻辑错误,也就是我们常说的Bug,一般存在逻辑错误的程序都是可以顺利的被编译器编译产生相应的字节码文件,也就是class文件。但是,在执行的时候,也就是java ourClass的时候,得出的结果并不是我们所希望的。
下面几个问题都是非常常见的错误,在一些新手的代码里面经常会出现的。
1、 Java是分大小写的
对于经常写VB、Asp程序的人来说,一定要注意,变量money和Money是不一样的。
2、一个java源文件可以包含多个class,但是只能包含一个public 的class。
java是面向对象的程序语言,编译完的字节码也是一个一个的类,就是class。一个.java文件可以包含多个class,在编译的时候,编译器会为每一个class生成相应的class文件。
但是必须要注意,一个.java文件只能包含一个public class,而且这个public class的类名要与这个.java的文件名一致。
比如,正确的写法应该是下面这样的:
一个java源文件,文件名为 Test.java,内容如下:
class A { } class B { } public class Test { }
3、一个等号和两个等号的不同
在Java程序中,一个等号是赋值操作符,而两个等号则是比较操作符。在 java新手的程序中
经常出现这样的代码:
int a=1; int b=2; if(a=b) System.out.println("OK");
这样是不对的,因为if后面需要得到的是一个布尔类型的值,这样编译就会出错。
因为,a=b,是赋值操作,就是把 b的值赋给了a,返回等号右边的值,也就是b的值,比如:
int a=1; int b=2; int c=(a=b); System.out.println("a : "+a); System.out.println("b: "+b); System.out.println("c: "+c);
输出结果则是,a等于2,b等于2,c也等于2, 明白了吗?
4、java中的数组下标是从0开始的
比如我们定义了一个数组
Object[] myArray=new Object[10],说明数组中有10个元素,是从myArray[0]开始,到myArray[9]结束的在用for循环的时候,需要注意,正确写法如下:
for(int i=0;i<myArray.length;i++) { }
5、空引用的错误
这类错误也是最令人头疼的,属于逻辑性错误,编译器可以正常编译,但是在某种情况下执行出错,出错信息是 java.lang.NullPointerException 。
这是由于在对象的引用没有被初始化的情况下而调用这个对象的属性或者方法而造成的,比如下面的例子:
class A3 { public static void main(String[] args) { String s=null; int a=1; int b=2; if(a<b) { s="a<b"; } System.out.println(s.toString()); } }
编译和执行都没有错误,可是如果把a的值赋为10,如下:
class A3 { public static void main(String[] args) { String s=null; int a=10; int b=2; if(a<b) { s="a<b"; } System.out.println(s.toString()); } }
那么就可以正常编译通过,但是执行的时候则出错。就是因为现在a<b不成立,也就是说没有执行s="a<b"这个初始化语句,所以在输出s.toString()的时候,对象s其实还是null,没有被初始化,这时候调用.toString()方法自然会出现异常。
以上就简单写几个java新手经常会出现的错误,其实出现错误并不可怕,只要大家仔细的分析一下出现的错误,看看究竟是什么原因导致的,如何避免。这样,就会很快的提高自己的水平,加入到高手的行列中。由于自己也是菜鸟水平,所以写的东西,难免出现这样那样的错误,希望大家多提意见。
语法错误,也就是我们的编码不符合java 规范,在编译的时候无法通过。通常,我们都是用javac编译我们的源程序,如果代码中存在语法错误,比如某个表达式后缺少分号的时候,编译器就会告诉我们错误信息,编译就此停止。
逻辑错误,也就是我们常说的Bug,一般存在逻辑错误的程序都是可以顺利的被编译器编译产生相应的字节码文件,也就是class文件。但是,在执行的时候,也就是java ourClass的时候,得出的结果并不是我们所希望的。
下面几个问题都是非常常见的错误,在一些新手的代码里面经常会出现的。
1、 Java是分大小写的
对于经常写VB、Asp程序的人来说,一定要注意,变量money和Money是不一样的。
2、一个java源文件可以包含多个class,但是只能包含一个public 的class。
java是面向对象的程序语言,编译完的字节码也是一个一个的类,就是class。一个.java文件可以包含多个class,在编译的时候,编译器会为每一个class生成相应的class文件。
但是必须要注意,一个.java文件只能包含一个public class,而且这个public class的类名要与这个.java的文件名一致。
比如,正确的写法应该是下面这样的:
一个java源文件,文件名为 Test.java,内容如下:
class A { } class B { } public class Test { }
3、一个等号和两个等号的不同
在Java程序中,一个等号是赋值操作符,而两个等号则是比较操作符。在 java新手的程序中
经常出现这样的代码:
int a=1; int b=2; if(a=b) System.out.println("OK");
这样是不对的,因为if后面需要得到的是一个布尔类型的值,这样编译就会出错。
因为,a=b,是赋值操作,就是把 b的值赋给了a,返回等号右边的值,也就是b的值,比如:
int a=1; int b=2; int c=(a=b); System.out.println("a : "+a); System.out.println("b: "+b); System.out.println("c: "+c);
输出结果则是,a等于2,b等于2,c也等于2, 明白了吗?
4、java中的数组下标是从0开始的
比如我们定义了一个数组
Object[] myArray=new Object[10],说明数组中有10个元素,是从myArray[0]开始,到myArray[9]结束的在用for循环的时候,需要注意,正确写法如下:
for(int i=0;i<myArray.length;i++) { }
5、空引用的错误
这类错误也是最令人头疼的,属于逻辑性错误,编译器可以正常编译,但是在某种情况下执行出错,出错信息是 java.lang.NullPointerException 。
这是由于在对象的引用没有被初始化的情况下而调用这个对象的属性或者方法而造成的,比如下面的例子:
class A3 { public static void main(String[] args) { String s=null; int a=1; int b=2; if(a<b) { s="a<b"; } System.out.println(s.toString()); } }
编译和执行都没有错误,可是如果把a的值赋为10,如下:
class A3 { public static void main(String[] args) { String s=null; int a=10; int b=2; if(a<b) { s="a<b"; } System.out.println(s.toString()); } }
那么就可以正常编译通过,但是执行的时候则出错。就是因为现在a<b不成立,也就是说没有执行s="a<b"这个初始化语句,所以在输出s.toString()的时候,对象s其实还是null,没有被初始化,这时候调用.toString()方法自然会出现异常。
以上就简单写几个java新手经常会出现的错误,其实出现错误并不可怕,只要大家仔细的分析一下出现的错误,看看究竟是什么原因导致的,如何避免。这样,就会很快的提高自己的水平,加入到高手的行列中。由于自己也是菜鸟水平,所以写的东西,难免出现这样那样的错误,希望大家多提意见。
展开全部
编程是职业发展的一个重要领域,一旦你开始学习,最好在你的余生中都这样做,这是因为编程过于动态和灵活。如果你决心学习Java,这里有一些建议,以解决你的学习经验问题。想从事java职业的同学可以参加java培训,可以在短时内学有所成,快速上岗。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
考虑逻辑不严谨导致BUG
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询