Effective Java
文章平均质量分 56
「已注销」
这个作者很懒,什么都没留下…
展开
-
07-避免使用终结方法
本条目大意尽量避免在类中使用终结(finalize)方法,在里面写一些释放类中资源的语句。为什么要避免使用 finalize方法?1、java语言规范不仅不保证 finalize方法会被及时地执行,而且根本不保证他们会被执行。 2、System.gc 和 System.runFinalization 这两个方法只是增加了finalizer 方法被执行的机会。 3、唯一能保证 finalize 方翻译 2017-02-16 15:02:06 · 534 阅读 · 0 评论 -
08-重写 equals 时请遵守通用约定
重写 equals 方法有许多的重写方式会导致错误,所以要么不重写 equals 方法,要么重写时就要尽力遵守通用约定。一、可以不重写equals方法的情况如果不重写equals方法,那该类的每个实例都只与它自身相等,而有时候这就是我们需要的。1、类的每个实例本质上都是唯一的 对于代表活动实体(例如 Thread),而不是值(Value)的类来说确实如此,Object提供的equals实现对于这些翻译 2017-02-17 16:22:06 · 403 阅读 · 0 评论 -
04-通过私有构造器强化不可实例化的能力
有时候需要编写只包含静态方法和静态域的类,其一般作为工具类使用,这样的类不需要被实例化。然而在缺少显式构造器的情况下,编译器会自动提供一个公有的、无参的缺省构造器(dafault constructor),所以常常可以看到一些被无意识地实例化的类。这就需要强化此类不可实例化的能力,由于只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此我们只需要将这个类包含私有构造器,它就不能被实例化了,翻译 2017-02-14 20:34:10 · 666 阅读 · 0 评论 -
03-用私有构造器或者枚举类型强化 Singleton 属性
目录 方法一:公有静态成员,并且是 final 域 方法二:公有的成员是个静态工厂方法 上述两种方法都存在的问题 序列化预防“假冒” 方法三:单元素的枚举类型 1. 公有静态成员,并且是 final 域public class Student { public static final Student INSTANCE = new Student(); // 私有构造器 priv翻译 2017-01-24 20:51:20 · 532 阅读 · 0 评论 -
02-遇到多个构造器参数时要考虑用构建器
目录 简介重叠构造器 JavaBeans 模式 Builder 模式 Builder 模式在 Android 的应用 简介构造器和静态工厂有一定的局限性,当我们创建实例,遇到大量的参数,有的参数需要传值,有的参数不需要选择等等灵活的条件下,我们应该怎么办? 重叠构造器:简单粗暴,提供好多好多个构造函数来满足需要。 JavaBeans 模式:实际上是先调用无参的构造函数来创建对象,然后再调用属性的 s翻译 2017-01-23 20:54:44 · 1046 阅读 · 0 评论 -
01-考虑用静态工厂方法代替构造器
本文目录 简介 优势 缺点 服务提供者框架 简介如果想要获取一个类的实例,最常用的方法就是提供一个公有的构造器,除此之外,类还可以提供一个公有的静态工厂方法,它是一个返回类的实例的静态方法。下面是Java中自带的Boolean类(基本类型boolean的包装类)中的静态工厂方法,这个方法将基本类型boolean值转换成一个Boolean对象引用: public static Boolean valu翻译 2017-01-15 18:22:54 · 364 阅读 · 0 评论 -
05-避免创建不必要的对象
本节书中从避免创建不必要的对象出发,提到了大概五个方面,如下:1、 String str1=new String("hello");每次执行都会创建String实例。 改进后 String str2="hello";所有在同一台虚拟机中运行的代码,只要它们包含相同的字符串字面常量,该对象就会被重用,而不是创建新的对象。2、 运行:Integer integer1 = Integer.valu翻译 2017-02-15 14:07:46 · 468 阅读 · 0 评论 -
06-消除过期的对象引用
java 虽然有垃圾回收机制,但是对于被引用的对象,就算我们已经不再使用,它的回收机制可能也不会进行回收,称之为内存泄漏。书中有这样一个例子,先看代码:public class Stack { public Object[] elements;//原文是private,便于测试改成public private int size = 0; private static final翻译 2017-02-15 22:15:22 · 393 阅读 · 0 评论