标签:
1.main方法的属性public static是可以交换的,但是返回类型一定是void类型,形式参数必须为String[]类型,名称可变。
2.查看加载类:new HelloWorld().getClass().getClassLoader().toString()。
3.在Java中,过程和函数统称为方法,方法分为类方法和实例方法,变量分为类变量和实例变量。类方法只能访问类变量,不能访问实例变量。实例方法可以访问实例变量和类变量。
4.任何设计语言错误:词法错误,语法错误,运行错误,逻辑错误。
5.可以使用System.out.println()来检查方法内执行情况,但要粗体或其他注释符号以便删除。
6.需要利用边界条件来测试方法的正确性。
7.注意“==”号的使用。“==”操作符用来比较变量的值是否相等,而equals用来判断对象是否是同一个对象。
8.String和StringBuffer:String存储的为对象,StringBuffer存储的为地址。采用String作为参数,其为值传递;但使用StringBuffer作为参数,其引用传递。同时,需要注意的是,在给对象的私有变量赋值时,应该使用s="Inital Value";而不是s=new String("Inital Value");因为后者每次会调用构造器。生成新对象,性能低下,内存开销大,而且没有意义。
9.逻辑操作符:&,^,| 短路逻辑操作符:&&,||。
10.length,length(),size()的区别:length属性是针对数组的,而length()方法是针对字符串的,size()方法是针对泛型集合的。
11.使用break后的标号跳出多重循环。
12.Java中对double类型设置了两个特殊值:Infinity和NaN。
13.javac -d 后跟一个目录名,该目录就是要存放编译的类文件的地方。
14.javac -cp abc.a.One就是强迫Java命令到当前目录的abc子目录的a的子目录下寻找One.class类文件。
15.抽象方法必须以分号结束,abstract方法不能使用private修饰。
16.局部变量前不能放置任何访问修饰符(private,public,protected),但final非访问修饰符可以用来修饰局部变量。
17.关于类的封装性,get方法只能获取一些基本类型的成员变量。对于引用类型的成员变量,可以采用对象深复制的方法。
18.用static修饰的代码,在类加载的时候,就会加载到内存中。
19.System.exit(0)表示在抛出异常前将Java虚拟机关闭。
20.方法覆盖的基本规则:
(1)覆盖方法的返回类型和参数列表必须同它所覆盖的方法精确匹配
(2)覆盖方法不能比它所覆盖的方法的可访问性更差
(3)覆盖方法不能比它所覆盖的方法抛出更多的异常
21.设计类的基本技巧:
(1)要将内部数据设计为私有:只许看,不准摸。
(2)一定要对数据进行初始化:Java中不对局部变量进行初始化,但是会对类的成员变量进行初始化。
(3)不在类中过多使用基本数据类型:如果一个类中的基本数据类型过多,应该将多个相关的基本数据类型封装成一个类。
(4)不是所有的成员变量都需要使用set和get方法。
(5)使用标准格式进行类的定义:1>公共访问特性部分,包访问可访问的特性部分,私有访问权限的特性部分
2>实例方法,静态方法,实例域,静态域
(6)将职责过多的类进行分解
(7)类名和方法要能体现出职责
22.抽象类无法实例化,所以它会引用具体子类的对象。
23.从JDK5.0开始,采用@Override对覆盖超类的方法进行标记。
24.Java要求equals方法具有以下特性:自反性,对称性,传递性,一致性,空处理返回假
25.equals方法内实现的内容:
(1)判断两个对象的引用是否相同:this==object
(2)判断参数是否为空值:object==null
(3)判断类型是否匹配:this.getClass()==object.getClass()
(4)将object转换成相应类型的类型变量:ClassName other=(ClassName)object
(5)判断各个域的值是否相同:this.name==object.name...
26.设计继承的建议:
(1)将公共操作和成员变量定义在超类
(2)尽量少使用保护域protected
(3)使用继承实现"is-a"关系
(4)除非所有的继承的方法都有意义,否则不要使用继承:假日类和日历类就不该试用继承,因为日历类有个将假日转为非假日的方法,这时,不该使用继承
(5)在覆盖方法时,不要改变预期的方法
(6)使用多态而非类型信息:对于如下类型的代码,应该将action定义成方法,并将其放置在两个类的超类或接口中,然后进行调用,使用多态。
1 if(x is of type 1) 2 action1(x); 3 else if(x is of type 2) 4 action2(x);
27.对象克隆:clone()方法是Object类的一个protected方法。此方法返回的对象独立于被复制的对象。
28.内部类相当于一个成员变量。因此内部类可以定义在成员方法中,称为局部内部类。
29.使用内部类的原因:
(1)内部类中的方法可以访问内部类所在定义域内的所有数据,包括私有数据
(2)内部类可以将同一个包中的其他类隐藏起来
(3)当想要定义一个方法解析自己时,试用匿名内部类比较便捷
标签:
原文地址:http://www.cnblogs.com/xavierjzhang/p/4514293.html