Java新手常犯的错误有哪些
本篇内容主要讲解“Java新手常犯的错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java新手常犯的错误有哪些”吧!
Java错误,主要包括两方面,一种是语法错误,另一种是逻辑错误。
语法错误,也就是我们的编码不符合java 规范,在编译的时候无法通过。通常,我们都是用javac编译我们的源程序,如果代码中存在语法错误,比如某个表达式后缺少分号的时候,编译器就会告诉我们错误信息,编译就此停止。
逻辑错误,也就是我们常说的Bug,一般存在逻辑错误的程序都是可以顺利的被编译器编译产生相应的字节码文件,也就是class文件。但是,在执行的时候,也就是java ourClass的时候,得出的结果并不是我们所希望的。
下面几个问题都是非常常见的错误,在一些新手的代码里面经常会出现的。
1、 Java是分大小写的
对于经常写VB、Asp程序的人来说,一定要注意,变量money和Money是不一样的。
一个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程序时加了.class
运行java程序时,是不需要i加扩展名.class的,比如
c:\javac A.java
c:\java A 而不应该是java A.class
这是因为java默认就是找后缀是class的文件,如果你加了.class,也就是java A.class的话,就会出现 错误:
Exception in thread HelloWorld/class "main" java.lang.NoClassDefFoundError
意思就是找不到这个类,因为java会把A.class当成一个包的写法,就是去A目录下找class这个类,自然找不到,所以就出错,错误信息和你classpath设置不正确的提示信息是一样的。
4、一个等号和两个等号的不同
在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, 明白了吗?
所以,看看下面这两段代码,如果你明白了,也就说明你已经懂得了一个等号和两个等号的意思了:
boolean a=false; boolean b=false; if(a==b) { System.out.println("a=b"); } else { System.out.println("a!=b"); }
结果输出“a=b”,如果换成一个等号
boolean a=false; boolea b=false; if(a=b) { System.out.println("a=b"); } else { System.out.println("a!=b"); }
则输出结果为“a!=b”
5、java中的数组下标是从0开始的
比如我们定义了一个数组
Object[] myArray=new Object[10],说明数组中有10个元素,是从myArray[0]开始,到myArray[9]结束的在用for循环的时候,需要注意,正确写法如下:
for(int i=0;i<myArray.length;i++) { }
6、空引用的错误
这类错误也是最令人头疼的,属于逻辑性错误,编译器可以正常编译,但是在某种情况下执行出错,出错信息是 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新手常犯的错误有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341