1. 主类与文件名不同 .
仔细检查主类与文件名是否相同,注意:大小写敏感。
2. 没有 main 方法 .
主类一般需要定义一个 main 方法,程序就从这里开始执行。
Java 的方法必有其它代码 的调用才能获得执行的机会。main 方法比较特殊,它不是其它代码调用的,而是由 java 虚 拟机直接调用的。 注意,main 的返回值和参数必须定义正确。
3. 分号错误 .
if(...); { ... } 是大家常遇到的错误,这个句子在语法上是合理的,但逻辑不通。for 循环也可能遇到 类似的误写。
4. 标识符约定 .
java 的标识符要求:只能使用字母和数字和下划线和美元符号。字符中不许有空格。不 能以数字开始。字母中本来可以使用中文的,但建议尽量使用西文或者拼音。 标识符包括:包名,变量名,方法名,类名等
5. 忘记写在方法中 .
所有的语句(定义变量除外)都要写在方法中,而不是直接写在类里。初学者很容易忘 记这一点。并且编译器给出的错误信息是十分奇怪的说法。毕竟它只是机器,只按照既定的 步骤去执行。这情况就好比你把小猫当作苹果,放到削皮机上去加工一样。
6. 加号的问题 .
关于加号,java 中是这样规定的:如果是两个数字相加,则把它们求和。如果是两个串 相加,则把它们连接。如果是一个串加一个数字,把它们连接。
7. 大括号问题 .
if 语句,或者 else 语句或者 for 语句等,最好加一个大括号,哪怕只有一条语句在其中。 这是为了防止今后修改
程序的时候, 因为增加语句而忘记加大括号。 不加大括号在语法上是 正确的,但逻辑有
问题。
8. 数组的下标越界 . 数组的下标越界
这是个十分常见的错误。数组的下标从 0 到个数减 1。
9. 空引用错误 .
最常发生的错误之一。 一个对象定义了,却没有真正的对象与之相关联。
10. .
死循环错误
while 循环中没有改变控制变量的值,或者没有能够退出的语句。
11. .
变量使用域
初学者容易产生这个错误。在一个方法中定义的变量,不能在其它方法中引用。因为这 个变量是在局限于这个方法的局部变量。 在 for 的初始化语句中定义的变量,只能在循环体内使用,它的作用区域更小。 在 try 块中定义的变量不能在 try 块外引用,它的作用域只在 try 内。
12. .
switch 语句忘记了 break
常见错误之一。每个 case 必须有个 break,才结束处理,否则又继续执行下边的 case 语句了。不写 break 不会导致语法错误,但逻辑可能不对。
13. .
有返回值的方法忘记了写返回值
这多是由于在该方法中有选择或者循环语句造成的。 因为我们只把注意力集中在某个条 件的出口的返回上
了,而忽略了某个“偏僻”的路径可能忘记了返回。
14. .
在方法中定义与参数同名的变量
方法中可以使用的变量包括自己定义的局部变量, 和参数送进来的变量。 这些变量的名 字互相都不可以重复。
15. .
数组定义错误
由于受到 c 语言的影响,数组定义为类似:String s[12] = ...的形式是错的。java 中的数 组是对象,而 c 中的数组是实体变量。java 的定义形式:String[] s = ...或者 String s[ ] = .., 在定义的时候,方括号永远是空的。
16. .
如果定义了有参构造,缺省的无参构造就失效了 如果定义了有参构造,缺省的无参构造就失效了
我们写一个类,自己没有定义构造函数,这时候系统提供一个缺省的构造函数。如果我 们提供了一个有参的构造函数,
系统就把原来提供的无参构造收回了。我们要想用,只能自 己再定义一个无参的构造形式。
17. .
在静态方法中使用 this 引用
静态方法就是不需要对象就可以执行的方法。因而它是没有 this 引用的。this 引用就是 方法执行在哪个对象上。静态方法不是在某个对象上执行的。
18. .
数组是 length,字符串是 length() ,
数组的长度和字符串的长度有微妙区别。字符串调用的是方法,数组的是属性。
19. .
声称实现接口,却没有覆盖接口中的方法 声称实现接口,却没有覆盖接口中的方法
常见的问题是,对接口中的方法的拼写或者参数出现错误,导致编译器抱怨说:没有覆 盖接口中的某某方法。