Java杂记

  1. 利用关键字final指示常量
  2. 使用关键字static final设置一个类常量
  3. >>> 运算符用0填充高位,>>运算符用符号位填充最高位
  4. String类为不可变字符串,不能直接修改字符串的字符
  5. 不能使用 == 运算符检测两个字符串是否相等,应当使用equals方法:==运算符智能够确定两个字符串是否在同一个位置上,当然,如果字符串放置在同一个位置上,它们必然相等,但是,内容相同的多个字符串的拷贝会放置在不同的位置上。
  6. 一个数组变量拷贝给另一个数组变量,这时,两个变量将引用同一个数组
    1
    2
    int[] a = b;
    a[5] = 12; //now b[5] is also 12
  7. 不要编写返回引用可变对象的访问器方法。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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的值。修改为:

    1
    2
    3
    public Date getHireDay(){
            return hireDay.clone();
    }
  8. 接口中的所有方法都自动属于public,因此,在接口中声明方法时,不必提供关键字public,然而,实现接口时,必须把方法声明为public,否则,编译器将会认为这个方法的访问属性是包可见性。
posted @   zxzhang  阅读(198)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示