获取类的一个实例,最常用的方法是提供一个公有的构造器.还有一种方法就是提供一个公有的静态工厂方法(static factory method):...
获取类的一个实例,最常用的方法是提供一个公有的构造器.还有一种方法就是提供一个公有的静态工厂方法(static factory method):...
静态工厂和构造器共同的局限性: 不能扩展到大量的可选参数. 这时可以考虑构建器 builder: builder 调用示例:
Singleton:仅仅被实例化1次的类.Java 1.5 之前,有两种方法实现Singleton: 1 私有构造器 -- 公有静态成员是fin...
类似 java.lang.Math 和 java.util.Arrays 等类, 只包含静态方法和静态域. 这些类不希望被实例化. 对于普通的...
重用不可变对象 一般来说, 最好能重用对象, 而不是在每次需要的时候创建一个相同功能的新对象.重用:快速,流行新建:慢,浪费存储. 反向示例 "...
示例:你找的出来下面代码中的内存泄漏(memory leak)吗 如果一个栈先增长,然后再收缩,那么pop出来的对象将不会被当做垃圾回收.即使使...
终结方法(finalizer) 通常是不可预测的,也是很危险的,一般情况下是不必要的. 不要把终结方法当做是C++中的析构器的对应物:C++ 需...
Object 提供的equals 方法: 类的每个实例都只与他的自身相等.指向同一个对象时才为true. 可以不覆盖equals方法的情况: 类...
在每个覆盖了equals 方法的类中,也必须覆盖 hashCode 方法.否则违反Object.hashCode 通用规定,从而导致无法结合所有...
java.lang.Object 提供的toString方法的实现: 类名@散列码无符号十六进制, 例如 PhoneNumber@163b91 ...
专题公告
Effective Java Sencond Edition 学习笔记