- 利用关键字final指示常量
- 使用关键字static final设置一个类常量
- >>> 运算符用0填充高位,>>运算符用符号位填充最高位
- String类为不可变字符串,不能直接修改字符串的字符
- 不能使用 == 运算符检测两个字符串是否相等,应当使用equals方法:==运算符智能够确定两个字符串是否在同一个位置上,当然,如果字符串放置在同一个位置上,它们必然相等,但是,内容相同的多个字符串的拷贝会放置在不同的位置上。
- 一个数组变量拷贝给另一个数组变量,这时,两个变量将引用同一个数组
int[] a = b; a[5] = 12; //now b[5] is also 12
- 不要编写返回引用可变对象的访问器方法。
class Employee{ private Date hireDay; public Date getHireDay(){ return hireDay; } } Employee harry = ...; Date d = harry.getHireDay(); double tenYearsMilliSeconds = 10*365.25*24*60*60*1000; d.setTime(d.getTime()-(long)tenYearsMilliSeconds);
此时,d和harry.hireDay引用同一个对象,对d调用更改器方法可以自动改变私有的hireDay的值。修改为:
public Date getHireDay(){ return hireDay.clone(); }
- 接口中的所有方法都自动属于public,因此,在接口中声明方法时,不必提供关键字public,然而,实现接口时,必须把方法声明为public,否则,编译器将会认为这个方法的访问属性是包可见性。