美文网首页
Effective Java 笔记 创建和销毁对象

Effective Java 笔记 创建和销毁对象

作者: 哈222 | 来源:发表于2018-09-21 17:57 被阅读0次


    创建和销毁对象

    1.考虑使用静态工厂方法代替构造器

    优点:

    1.1静态工厂方法存在名称,在类需要多个带有相同标签的构造器是,可通过不同的名字进行区分

    1.2不必每次调用时创建一个新对象

    1.3返回原返回类型的任意子类型对象

    1.4代码更加简洁

    缺点:

    1.1类若不含公有或受保护构造器,不能被子类化

    1.2与其他的静态方法实际上没有任何区别


    2.多个构造器时要考虑用构建器

    javabean的缺陷:
    javabean模式有一个致命的缺陷,就是它的构造过程分部到几次调用中,而不是一次性完成的。

    javabean模式还有第二个缺点:如果对象中含有final修饰的字段,那么javabean模式将不能对其执行setter操作。


    3.私有构造器或枚举类型强化Singleton属性

    3.1饿汉模式

    通过反射获得单例类的构造函数,由于该构造函数是private的,通过setAccessible(true)指示反射的对象在使用时应该取消Java语言访问检查,使得私有的构造函数能够被访问,这样使得单例模式失效。

    解决:可在构造器中判断instance是否存在,从而避免

    通过序列化和反序列化也可以破解单例模式

    解决:反序列化时,如果定义了readResolve()则直接返回此方法指定的对象,而不需要在创建新的对象!

    3.2懒汉模式

    构造器私有、公共的静态方法

    3.3枚举类


    4.通过私有构造器强化不可实例化的能力


    5.避免创建不必要的对象

    例如String类型,可直接重用

    重用的代码段,可用static进行包含


    6.消除过期的对象引用

    只要类是自己管理内存,就应该警惕内存泄漏问题。一旦元素被释放掉,则该元素中包含的任何对象引用都应该被清空。


    7.避免使用终结方法

    第七条:避免使用终结方法(finalizer)

    尽量不要在你的类中覆盖finalize方法,然后在在里面写一些释放你的类中资源的语句。


    相关文章

      网友评论

          本文标题:Effective Java 笔记 创建和销毁对象

          本文链接:https://www.haomeiwen.com/subject/rmjanftx.html