《Effective Java 3》笔记6:避免创建不必要的对象

本文是 《Effective Java 3》第二章的学习笔记:避免创建不必要的对象。 介绍 创建对象时,经常会复用对象。如果对象是不可变的,那么它总是可以被复用的。 下面一个例子: 1 String s = new String("bikini"); // DON'T DO THIS! 该语句每次执行时都会创建一个新的 String 实例,而这些对象创建都不是必需的。String 构造函数的参数 ("bikini") 本身就是一个 String 实例,在功能上与构造函数创建的所有对象相同。如果这种用法发生在循环或频繁调用的方法中,创建大量 String 实例是不必要的。 ...

2023-04-24 · 14 min · 6514 words · chensoul

《Effective Java 3》笔记5:依赖注入优于硬编码资源

本文是 《Effective Java 3》第二章的学习笔记,在整理笔记过程中,通过 chatgpt 的帮助做了一些扩展。 介绍 依赖注入是软件工程中使用的一种设计模式,用于将组件和依赖项相互解耦。而不是在组件内部创建和管理依赖项,我们从外部传递它们。这种方法可以帮助创建更模块化和灵活的代码。 ...

2023-04-17 · 15 min · 7268 words · chensoul

《Effective Java 3》笔记3:使用私有构造函数或枚举类型创建单例

本文是 《Effective Java 3》第二章的学习笔记,在整理笔记过程中,通过 chatgpt 的帮助做了一些扩展。 介绍 单例是一个只实例化一次的类。单例通常表示无状态对象,比如函数或系统组件,它们在本质上是唯一的。将一个类设计为单例会使它的客户端测试时变得困难, 除非它实现了作为其类型的接口,否则无法用模拟实现来代替单例。 ...

2023-04-11 · 13 min · 6495 words · chensoul

《Effective Java 3》笔记1:静态工厂方法代替构造函数

本文是 《Effective Java 3》第二章的学习笔记,在整理笔记过程中,通过 chatgpt 的帮助做了一些扩展。 介绍 静态工厂方法是指在类中定义一个静态方法,用于创建该类的实例。示例: 1 2 3 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 与构造函数不同的是,静态工厂方法可以有自己的名称,并且可以根据参数的不同返回不同的对象实例。 ...

2023-04-03 · 7 min · 3347 words · chensoul

《Effective Java 3》笔记2:使用构造器代替构造方法

本文是 《Effective Java 3》第二章的学习笔记,在整理笔记过程中,通过 chatgpt 的帮助做了一些扩展。 介绍 当一个类需要多个构造函数参数时,可以考虑使用构建器模式来创建对象。构建器模式是一种创建对象的设计模式,它可以通过链式调用方法的方式来设置对象的构造参数,并最终返回一个构造完整的对象。 ...

2023-04-03 · 15 min · 7117 words · chensoul