|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。毛病失利是乐成之母,这句话用在编程妙手身上是再符合不外的了。进修编程没有甚么捷径能够走,
在不休的进修和编码的过程当中,渐渐的堆集履历,从入手下手的仿照者酿成最初的创作者。和进修别的的
编程言语一样,Java老手在入手下手编码的时分也会呈现良多良多的毛病,并且有的毛病大概也是不休的
呈现。当呈现这些毛病的时分,我们就要细心的看看毛病提醒,找出成绩地点,制止今后不再产生一样
的毛病。在这个历程傍边我们的履历和程度也在不休的提拔。
Java毛病,次要包含两方面,一种是语法毛病,另外一种是逻辑毛病。
语法毛病,也就是我们的编码不切合java标准,在编译的时分没法经由过程。一般,我们都是用javac
编译我们的源程序,假如代码中存在语法毛病,好比某个表达式后短少分号的时分,编译器就会告知
我们毛病信息,编译就此中断。
逻辑毛病,也就是我们常说的Bug,一样平常存在逻辑毛病的程序都是能够顺遂的被编译器编译发生
响应的字节码文件,也就是class文件。可是,在实行的时分,也就是javaourClass的时分,得出的了局
并非我们所但愿的。
上面几个成绩都长短经常见的毛病,在一些老手的代码内里常常会呈现的。
1、Java是分巨细写的
关于常常写VB、Asp程序的人来讲,必定要注重,变量money和Money是纷歧样的。
2、一个java源文件能够包括多个class,可是只能包括一个public的class。
java是面向对象的程序言语,编译完的字节码也是一个一个的类,就是class。一个.java文件能够包括
多个class,在编译的时分,编译器会为每个class天生响应的class文件。可是必需要注重,一个.java文件
只能包括一个publicclass,并且这个publicclass的类名要与这个.java的文件名分歧。
好比,准确的写法应当是上面如许的:
一个java源文件,文件名为Test.java,内容以下:
classA
{
}
classB
{
}
publicclassTest
{
}
3、运转java程序时加了.class
运转java程序时,是不必要i加扩大名.class的,好比
c:javacA.java
c:javaA而不该该是javaA.class
这是由于java默许就是找后缀是class的文件,假如你加了.class,也就是javaA.class的话,就会呈现毛病:
ExceptioninthreadHelloWorld/class"main"java.lang.NoClassDefFoundError
意义就是找不到这个类,由于java会把A.class当做一个包的写法,就是往A目次下找class这个类,天然
找不到,以是就堕落,毛病信息和你classpath设置不准确的提醒信息是一样的。
4、一个等号和两个等号的分歧
在Java程序中,一个等号是赋值操纵符,而两个等号则是对照操纵符。在java老手的程序中
常常呈现如许的代码:
inta=1;
intb=2;
if(a=b)System.out.println("OK");
如许是不合错误的,由于if前面必要失掉的是一个布尔范例的值,如许编译就会堕落。
由于,a=b,是赋值操纵,就是把b的值赋给了a,前往等号右侧的值,也就是b的值,好比:
inta=1;
intb=2;
intc=(a=b);
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("c:"+c);
输入了局则是,a即是2,b即是2,c也即是2,分明了吗?
以是,看看上面这两段代码,假如你分明了,也就申明你已明白了一个等号和两个等号的意义了:
booleana=false;
booleanb=false;
if(a==b)
{
System.out.println("a=b");
}
else
{
System.out.println("a!=b");
}
了局输入“a=b”,假如换成一个等号
booleana=false;
booleab=false;
if(a=b)
{
System.out.println("a=b");
}
else
{
System.out.println("a!=b");
}
则输入了局为“a!=b”
5、java中的数组下标是从0入手下手的
好比我们界说了一个数组
Object[]myArray=newObject[10],申明数组中有10个元素,是从myArray[0]入手下手,到myArray[9]停止的
在用for轮回的时分,必要注重,准确写法以下:
for(inti=0;i<myArray.length;i++)
{
}
6、空援用的毛病
这类毛病也是最使人头疼的,属于逻辑性毛病,编译器能够一般编译,可是在某种情形下实行堕落,堕落
信息是java.lang.NullPointerException。
这是因为在对象的援用没有被初始化的情形下而挪用这个对象的属性大概办法而酿成的,好比上面的例子:
classA3
{
publicstaticvoidmain(String[]args)
{
Strings=null;
inta=1;
intb=2;
if(a<b)
{
s="a<b";
}
System.out.println(s.toString());
}
}
编译和实行都没有毛病,但是假如把a的值赋为10,以下:
classA3
{
publicstaticvoidmain(String[]args)
{
Strings=null;
inta=10;
intb=2;
if(a<b)
{
s="a<b";
}
System.out.println(s.toString());
}
}
那末就能够一般编译经由过程,可是实行的时分则堕落。
就是由于如今a<b不建立,也就是说没有实行s="a<b"这个初始化语句,以是在输入
s.toString()的时分,对象s实在仍是null,没有被初始化,这时候候挪用.toString()办法
天然会呈现非常。
以上就复杂写几个java老手常常会呈现的毛病,实在呈现毛病其实不可骇,只需人人细心的
剖析一下呈现的毛病,看看事实是甚么缘故原由招致的,怎样制止。如许,就会很快的进步
本人的程度,到场到妙手的行列中.......
因为本人也是菜鸟程度,以是写的工具,不免呈现如许那样的毛病,但愿人人多提定见。
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。 |
|