Java新手常犯的几种错误

错误

失败是成功之母,这句话用在编程高手身上是再合适不过的了。学习编程没有什么捷径可以走,

在不断的学习和编码的过程中,逐渐的积累经验,从开始的模仿者变成最后的创作者。和学习其它的

编程语言一样,Java新手在开始编码的时候也会出现很多很多的错误,而且有的错误可能也是不断的

出现。当出现这些错误的时候,我们就要仔细的看看错误提示,找出问题所在,避免以后不再发生同样

的错误。在这个过程当中我们的经验和水平也在不断的提升。

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程序时加了.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新手经常会出现的错误,其实出现错误并不可怕,只要大家仔细的

分析一下出现的错误,看看究竟是什么原因导致的,如何避免。这样,就会很快的提高

自己的水平,加入到高手的行列中.......

由于自己也是菜鸟水平,所以写的东西,难免出现这样那样的错误,希望大家多提意见。

时间: 2016-02-08

Java新手常犯的几种错误的相关文章

制定营销计划常犯的10种错误

错误     市场营销计划几乎是所有赢利性组织的核心计划之一,正确的市场营销计划往往为公司的成功作出了最基本的贡献.市场营销计划是用来回答公司经营的三个基本问题的核心文件,这三个问题是:我们现在在哪里(对现状进行分析).我们想到哪里去(形成公司的战略方向和目标).我们怎样到那里(选择战略和营销组合).     经过调查发现,90%以上的公司营销高级主管参与了营销计划的制定过程,平均每年有45天左右的时间来从事这项工作.营销计划的基本框架和产生的过程对营销计划的正确与否起着关键的作用.一般来说,制

PS中最常犯的6个错误

  一.少图层,没分组 这个坏习惯我们在<<WEB设计指南!PS礼仪白皮书>>提到过,多创造图层,学会给图层分组是一个专业设计师必须学会的,这不仅有利于你的修改,也是团队合作中少不得的习惯. 在刚开始的设计中,你可能会认为少创建图层能节省时间,但当项目变得越来越大时,你会意识到足够量的图层是多么地重要. 当你犯错时,图层能够给你修改的机会,大大地增强你编辑.复制甚至删除等操作的可能性,而不是重新来一稿. 多个图层,也可以让你不必总是修改一个图层,你可以复制一层,在这层上面修改,坏了

PS中最容易犯的9种错误

  每次更新升级Photoshop,都会发现新版PS会提供不少图像处理的新功能.这些新功能可帮助你快捷地完成工作,大大提高工作效率.不过,一旦人们养成了固定的习惯,要更改是很难的.这里,本次PS翻译教程就分享一下国外PS大神的经验,看看PS修图过程中最容易犯的9种错误是什么,以及如何避免这些错误的发生.本PS教程非常适合PS小白们学习. 一.将某些操作布局在独立图层 当用Photoshop进行图像处理,特别是人像处理时,应将局部色彩调整.消除斑点.美白牙齿等操作分布在独立图层,这样即使关闭文档,

购买空间的一些心得 应避免新手常犯的错误

我在购买空间的时候一些心得.(避免新手买空间常犯的错误) 现在有很多空间商,不管是国内的还是国外的.服务也有好有坏,相信很多站长都在初期有过被服务商欺骗的经历.笔者就曾经在刚刚建站的时候连续N天泡在搜索引擎里面,为的就是寻找一个适合自己的空间.在这里总结一下购买虚拟空间的经验,希望大家不要跟我走进同样的误区. 1:一分钱一分货,切记不要贪便宜. 在网上经常能看到一些价格便宜,容量又大,ISS.流量等等等总之都不限制,总之看了感觉性价比相当合适.但是冷静下来想想,要是性价比这么合适,空间商如何盈利

新手写css常犯的8个错误

再牛逼的高手也会犯这样的错误,因为当页面结构很复杂,嵌套很多层的时候,很容易搞丢关闭标签. 刚接触css的时候比较茫然,很多时候不知道如何开始,如何下手.拿到一个效果图,很多问题,困扰我们,怎样布局?绝对定位还是相对定位,选择什么标签?采取怎样的结构..等等..当然在写代码的过程中,会遇到很多问题,尤其是我们新手,对各方面只是不是很了解,更缺少经验,遇到问题常常手足无措.我想,我们在遇到问题的时候,要学会总结,避免下次再遇到还是犯相同的错误. 下面是自己在工作中,总结的一些容易犯的错误, 和解决

Java程序员在写SQL程序时候常犯的10个错误

  Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用"模式-模式",举个例子,模式可以应用到任何地方,而且都可以归为某一类模式) 心境(首先,要写个好的面向对象程序是比命令式程序难的多,你得花费一些功夫) 但当Java程序员写SQL语句时,一切都不一样了.SQL是说明性语言而非面向对象或是命令式编程语言.在SQL中要写个查询语句是很简单的.但在Java里类似的语句却不

写Java程序最容易犯的21种错误

程序|错误 1.DuplicatedCode 代码重复几乎是最常见的异味了.他也是Refactoring的主要目标之一.代码重复往往来自于copy-and-paste 的编程风格.与他相对应OAOO是一个好系统的重要标志(请参见我的duplicatedcode一文:http://www.erptao.org/download.php?op=viewsdownload&sid=6). 2.Longmethod 它是传统结构化的"遗毒".一个方法应当具有自我独立的意图,不要把几个意

Java程序最容易犯的21种错误实例分析

程序|错误 1.Duplicated Code 代码重复几乎是最常见的异味了.他也是Refactoring的主要目标之一.代码重复往往来自于copy-and-paste的编程风格.与他相对应OAOO是一个好系统的重要标志. 2.Long method 它是传统结构化的"遗毒".一个方法应当具有自我独立的意图,不要把几个意图放在一起. 3.Large Class 大类就是你把太多的责任交给了一个类.这里的规则是One Class One Responsibility. 4.Diverge

网页设计中HTML常犯的五个错误

错误|设计|网页|网页设计 1.网页背景色的设置 犯错机率:很大 普遍性:较广 犯错可能性:懒/不知道 约2年前我曾发现21cn上出现过一次没有设置背景色的情况,当时我用Email通知了他们,自此之后这个问题我从没犯过. 绝大部分人的窗口背景颜色都是白色,但如果象我这样个性的人,就会把windows窗口的背景颜色改成灰色或其他色,这样一来,如果你没有设置网页的背景颜色的话,你以为正常的网页在我的电脑上看起来会是一团糟. 2.Align center(自动居中)的滥用 犯错机率:非常大 普遍性:非