effective java 学习
徐炮台
这个作者很懒,什么都没留下…
展开
-
七、消除过期对象的引用
消除过期的对象引用三种造成内存泄漏的主要原因:1、Stack类自己管理内存。存储池包含了elements数组(对象引用单元,而不是对象本身)的元素,只要类是自己管理内存,程序员就应该警惕内存泄漏问题。Stack先是增长,然后再收缩,Stack内部维护着对这些对象的过期引用,过期引用指的是永远也不会解除的引用,只要一个单元被弹出栈,指向他的引用就过期了,清除过期引用最好的方法就是让包含该引用的变量结束其生命周期。他的一个好处就是,如果它们以后又被错误的解除引用,程序就会立即抛出NullPointerExce转载 2021-02-23 22:44:38 · 160 阅读 · 0 评论 -
四.通过私有构造器强化不可实例化的能力
1.常用的工具类强制工具类不被实例化,只需要让给工具类包含一个私有构造器,他就不能被实例化public class UtilClass{ private UtilClass(){ throw new Exception(); } ......}原创 2021-02-21 21:01:33 · 46 阅读 · 0 评论 -
三.用私有构造器或者枚举类型强化Singleton属性
第一种方法:公有静态成员是个final域public class Single { public static Single single = new Single(); private Single(){ } public void run(){ System.out.println("cccc"); }}第二种方法:公有成员是个静态工厂方法public class Single { //private 是指只能在本类原创 2021-02-21 20:42:49 · 90 阅读 · 0 评论 -
一.使用静态方法代替构造器
1.静态方法与构造器不同的优势在于,他们有名称。/** * @Author pao * @Date 2021/2/21 15:02 * @Description */public class People { private final SEX sex; private final String name; public int age; private People(String name, int age, SEX sex){ this.s原创 2021-02-21 17:45:24 · 320 阅读 · 0 评论