Java杂记

  1. 利用关键字final指示常量
  2. 使用关键字static final设置一个类常量
  3. >>> 运算符用0填充高位,>>运算符用符号位填充最高位
  4. String类为不可变字符串,不能直接修改字符串的字符
  5. 不能使用 == 运算符检测两个字符串是否相等,应当使用equals方法:==运算符智能够确定两个字符串是否在同一个位置上,当然,如果字符串放置在同一个位置上,它们必然相等,但是,内容相同的多个字符串的拷贝会放置在不同的位置上。
  6. 一个数组变量拷贝给另一个数组变量,这时,两个变量将引用同一个数组
    int[] a = b;
    a[5] = 12; //now b[5] is also 12
  7. 不要编写返回引用可变对象的访问器方法。
    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();
    }
  8. 接口中的所有方法都自动属于public,因此,在接口中声明方法时,不必提供关键字public,然而,实现接口时,必须把方法声明为public,否则,编译器将会认为这个方法的访问属性是包可见性。
原文地址:https://www.cnblogs.com/ZhaoxiCheung/p/6034344.html