Effective java
lsluffy
这个作者很懒,什么都没留下…
展开
-
Effective java第一条:考虑用静态工厂方法代替构造器
一、创建对象构造方法public Boolean(String s) { this(toBoolean(s)); } Boolean bTrue = new Boolean("true");静态工厂方法public static Boolean valueOf(String s) { return toBoolean(s) ? TRUE : FALSE; } Boolean bTrue =原创 2017-10-31 16:27:40 · 352 阅读 · 0 评论 -
Effective java第二条:遇到多个构造器参数时要考虑用构造器
当构造器需要用到大量参数的时候,你也许会用到重叠构造器模式,它尽管可行,但是调用起来很不方便,对这个构造器不熟悉的人得花不少时间来了解每个参数的意义。你也许会用到javabeans模式,这种模式调用无参的构造函数,然后用setter方法来设置每个用到的参数。这种模式代码可读性要提高不少,但是构造过程被分到几个调用中,在构造过程中javabean可能处于不一致的状态,需要我们考虑线程安全问题。原创 2017-11-01 13:58:46 · 193 阅读 · 0 评论 -
Effective java第三条:用私有构造器或者枚举类型强化singleon属性
单例模式大家都不模式,java1.5发行版之前大家都用两种方法实现singleton。第一种:静态成员public class Singleton1 { public static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() { } } 第二种:静态工厂方法public class Sin原创 2017-11-01 18:02:18 · 264 阅读 · 0 评论 -
Effective java第四条:通过私有构造器强化不可实例化的能力
当创建一个工具类的时候,一般是无需实例化的,类里面都是静态域和静态方法,这种情况下我们尽量保证工具类不能被实例化。可以定义一个私有的构造器,如下:public class Tools { // 不可被实例化的类 private Tools() { throw new AssertionError(); } } 添加 throw new AssertionErr原创 2017-11-02 14:45:43 · 241 阅读 · 0 评论 -
Effective java第五条:避免创造不必要的对象
// 不建议使用 String s = new String("ls"); // 改为 String s = "ls";当一个不可变类同时提供静态工厂方法和构造器来实例化,一般使用静态工厂方法。比如Boolean.valueOf(String)总是比Boolean(String)更适合。 编程时应该尽量避免实例化很多基本不会改变的对象,遇到这种情况,可以变成静态对象。 但是除非是数据库连接池这种原创 2017-11-02 15:39:29 · 236 阅读 · 0 评论 -
Effective java第六条:消除过期的对象引用
都说java有垃圾自动回收机制,但是在开发过程中仍然有可能导致内存泄漏问题。下面有几种造成内存泄漏的来源。一、过期引用看下面的代码,这个简单的栈就存在“过期引用”的问题。当栈进行增长再收缩时,public class Stack { private Object[] elements; private int size = 0; private static fi原创 2017-11-02 18:02:23 · 230 阅读 · 0 评论