240 投稿
收录了9篇文章 · 1人关注
  • 考虑实现Comparable接口

    什么是Comparable接口? Comparable接口一般用于表示某个实例具有内在的排序关系。 为什么需要实现Comparable接口? 我...

  • 始终要覆盖toString

    为什么要覆盖toString方法? 我们看一个例子,定义一个Person类: 例子很简单,将一个Person实例放入list中,然后获取到它,并...

  • 覆盖equals时遵守通用约定

    1. 尽量避免覆盖equals方法: 因为覆盖equals方法看似很简单,但实际上有许多覆盖方式会导致错误,并且后果很严重。 2. 什么情况下,...

  • Resize,w 360,h 240
    消除过期的对象引用

    什么是过期的对象引用? 我们通过简单的栈实现来引入过期的对象引用。 实际上,这段程序中并没有很明显的错误。无论如何测试,它都会成功地运行通过每一...

  • 避免创建不必要的对象

    一般来说,最好能重用对象而不是每次需要的时候就创建一个相同的对象。如果对象是不可变的,它就始终可以被重用。 例子:我们创建一个类,用来检验一个人...

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

    通过私有构造器强化不可实例化的能力 在上一节,我们学习了如何通过不同的方法强化Singleton,但并非所有的类都是需要实例化的。例如我们常用的...

  • 强化Singleton属性

    法则:用私有构造器或枚举类型强化Singleton属性 实现Singleton的三种方法: 把构造器保持为私有的,并导出公有的静态成员。 把构造...

  • 遇到多个构造器参数时要考虑用Builder模式

    创建对象的三种模式 静态工厂和构造器模式:将所有参数传递到构造函数中,这种方式不能很好地扩展到大量的可选参数。 JavaBean模式:调用一个无...

  • Resize,w 360,h 240
    考虑用静态工厂方法替代构造器

    1. 通常我们创建对象的方法有两种: a. 使用类公有的构造器 b. 使用类的静态方法返回一个实例对象 2. 静态方法的优点: a. 静态工厂方...

专题公告

Effective Java读书笔记