1、一般地,一个文件只存放一个类。当然,也可以将多个类放在同一个文件内,但只能有一个类声明为public,此文件的名字需和声明为public的类同名。2、Java严格区分大小写。3、命名的习惯:类名中,各个英文名字的第一个字母使用大写,并且不要使用任何符号作为字与字之间的分隔。4、类似C++,main()是Java程序执行的起点。Java只能执行包含main()的文件,它必须为public(热合对象都可读取它)和,static(可被直接调用而无需有对象存在)以及void(无返回值),但这也不是绝对的。例如,Apple和Servlet,它们不是从main()开始执行的。5、分号(;)是用来表示一个程序语句的结束。6、/** …… */用来生成Java程序的说明文件。7、javap可以用来读取.class文件的内容。8、可利用Java反编译器来得到.class文件的Java源程序代码,如Jad或Decafe。9、为了避免他人利用反向工程的方法来解读Java程序,可使用模糊器进行保护。如JBuilder就提供了此功能,其他还有JCloak、JProof。10、Applet是包含在HTML网页内,在客户端浏览器执行的Java小程序,Servlet是在服务器执行的Java程序。11、Applet小程序需要有两个文件,一是Java小程序的源程序,二是包含此小程序的HTML文件。12、有两种执行Applet小程序的方法,一是直接使用浏览器打开该HTML文件;二是使用appletviewer来执行该HTML文件。13、标识符必须以字母、下划线(_)或美元符号($)开头,其余部分可由前面所说的字符以及数字(0~9)所组成。14、关键字(keyword)不能作为标识符。15、true、false、null并不是关键字,但也不能用作标识符。16、Java基本上有类变量、实例变量和区域(local)变量3种类型的变量。类变量和实例变量只能在方法之外声明,而区域变量只能在方法之内声明。17、由于类变量和实例变量并不会占据命名的空间,因此,类内的方法仍可声明同名的变量。18、数据类型分为引用数据类型和基本数据类型。19、整数类型:byte、short、int、long、char20、Java内置的运算符并不会处理溢出(overflow)或下溢(underflow)的问题。只有在使用运算符/或%时,当被零除发生时会显示Arithmetric Exception,表示在数值处理时发生例外状况。21、变量命名时,第一个英文字使用小写,其余英文字的第一个字母使用大写,并且不要使用任何符号作为字与字之间的分隔。22、long numLong=5000000000L;L表示此数值的类型为long。23、十六进制数值需在所要表示的数值前加0x或0X;八进制数值前需加0。24、浮点类型:float、double25、浮点运算时不会处理例外状况。当结果是溢出时,结果为Infinity;下溢时,则结果为0.0;若其结果时数学上没有定义的,则结果为NaN(not a number)。所有和NaN有关的运算结果为NaN,和NaN进行数值比较时,其结果总是false。26、当指定浮点运算值时,其默认类型为double,要指定一个值为float时,需要在数值的后面加上F或f。27、当由int或long转换为float,或由long转换为double时,由于float与double有效位数限制的关系,可能会造成精确度的损失。28、1+"2"="12",由于"2"是字符串,当然不能执行数值运算,此时加号是作为字符串合并使用。加号是一种运算符重载(operator overloading)29、委派转换,等号左右两边的变量类型必须相同,否则,在编译程序时,会得到错误信息。30、成员变量(类变量或实例变量)或数组有默认初始值;对于区域变量,没有默认初始值,因此,在使用区域变量时,必须给它指定值。如果没有,在编译时往往会出现错误信息。31、由封装对象转换为基本数据类型:obj.XXXValue();obj为封装类的对象,XXX为该封装对象所表示的 基本数据类型。32、由字符串转换为基本数据类型:obj.parseXXX(String str);obj是封装类的对象,XXX为该封装对象 所表示的基本数据类型。33、由字符串转换为封装对象:obj.valueOf(String str)。34、由封装对象转换为字符串:obj.toString()。35、由基本数据类型转换为字符串:obj.toString(XXX value)。36、不等于:!=37、运算符instanceof,如v1 instanceof v2。检查对象v1是否为class v2的一个实例。38、逻辑运算符两边的式子需属于boolean。与C++不同,C++中,0之外的整数都视为true。39、位(Bitwise)逻辑运算符: & ,v1 & v2。位AND,若相对位都为1,则1,否则0 | ,v1 | v2。位OR,若相对位都为0,则0,否则1 ^ ,v1 ^ v2。位XOR,若相对的位有相同值,则0,否则1 ~ ,~v1。v1的补码,1变成0,0变成1。 v1和v2需属于整数类型。40、Java不支持操作重载,也不支持C++的::和>>以及<<运算符。41、常量的指定:static final int NUM =1。42、数组定义:int num []; or int [] num; num=new int [15]; or int [] num=new num[15]; or int num[]={1,2,3,4,5};43、若二维数组的第2维的长度不同,由于数组变量本身是参考类型,可将第1维指向另一个数组。44、复制数组:void arraycopy(Object src,int srcPosition,Object dest,int destPosition,int length) or clone() for example int [] newA=(int [])A.clone();45、Arrays类提供的一些数组运算,如排序和搜索 static void sort(dataType[] data):将数组data内的元素由小到大排列(使用quicksort) static void sort(dataType[] data,int fromIndex,int toIndex) static int binarySearch(dataType[] data,dataType key):利用二进制搜索的方式搜索数组data (必须事先排过序)内的元素key。若搜索到,则返回key在data中的位置;若无法找到,返回值为(-插 入点-1),插入点(insert point)为第一个大与所要搜索元素值的索引。 static void fill(dataType[] data,dataType val):将数组内的各元素设置为val。 static void fill(dataType[] data,int fromIndex,int toIndex,dataType val)46、在Java中,char数组及String类并不以'\0'为结尾。char数组并不等于String对象,数组是可变的, 但String对象是不变的。47、将char数组转换成一个String对象。char[] data={'s','t','r','i','n','g'};String str=new String(data);48、length()得到一个字符串的长度,而length可用来得到一个数组所含元素的数目。49、由于Java的对象为引用类型,因此,string1==string2,只是比较变量string1和string2是否指向 同一个地址,并不会比较字符串的内容。50、int compareTo(String str):s1.compareTo(s2)。若s1和s2相等,则返回0;若s1>s2,则返回值大于 0;若s1

评论