Java设计模式:Active Object

本文主要介绍 Active Object 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 Java Design Patterns 提供了各种 Java 设计模式的介绍、示例代码和用例说明。该网站旨在帮助 Java 开发人员了解和应用各种常见的设计模式,以提高代码的可读性、可维护性和可扩展性。 ...

2023-05-26 · 22 min · 10901 words · chensoul

《Effective Java 3》笔记11:当覆盖 equals 方法时,总要覆盖 hashCode 方法

本文是 《Effective Java 3》第三章《对象的通用方法》的学习笔记:当覆盖 equals 方法时,总要覆盖 hashCode 方法。 介绍 在覆盖了 equals 方法的类中,必须覆盖 hashCode 方法。 如果你没有这样做,该类将违反 hashCode 方法的一般约定,这将阻止该类在 HashMap 和 HashSet 等集合中正常运行。以下是根据 Object 规范修改的约定: ...

2023-05-23 · 11 min · 5392 words · chensoul

Java设计模式:Abstract Document

本文主要介绍 Abstract Document 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 Java Design Patterns 提供了各种 Java 设计模式的介绍、示例代码和用例说明。该网站旨在帮助 Java 开发人员了解和应用各种常见的设计模式,以提高代码的可读性、可维护性和可扩展性。 ...

2023-05-22 · 11 min · 5077 words · chensoul

Java设计模式:Abstract Factory

本文主要介绍 Abstract Factory 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 Java Design Patterns 提供了各种 Java 设计模式的介绍、示例代码和用例说明。该网站旨在帮助 Java 开发人员了解和应用各种常见的设计模式,以提高代码的可读性、可维护性和可扩展性。 ...

2023-05-22 · 7 min · 3415 words · chensoul

JSR 166规范

JSR 介绍 JSR,全称 Java Specification Requests, 即 Java 规范提案, 主要是用于向 JCP(Java Community Process) 提出新增标准化技术规范的正式请求。每次 JAVA 版本更新都会有对应的 JSR 更新,比如在 Java 8 版本中,其新特性 Lambda 表达式对应的是 JSR 335,新的日期和时间 API 对应的是 JSR 310。 ...

2023-05-18 · 9 min · 4204 words · chensoul

《Effective Java 3》笔记10:覆盖equals方法时应遵守的约定

本文是 《Effective Java 3》第三章《对象的通用方法》的学习笔记:覆盖 equals 方法时应遵守的约定。 介绍 覆盖 equals 方法似乎很简单,但是有很多覆盖的方式会导致出错,而且后果可能非常严重。避免问题的最简单方法是不覆盖 equals 方法,在这种情况下,类的每个实例都只等于它自己。如果符合下列任何条件,就是正确的做法: ...

2023-05-17 · 18 min · 8667 words · chensoul

《Effective Java 3》笔记8:避免使用终结器和清除器

本文是 《Effective Java 3》第二章的学习笔记:避免使用终结器和清除器。 介绍 终结器是不可预测的、常常是危险的,通常也是不必要的。 它们的使用可能导致不稳定的行为、低效率和可移植性问题。终结器有一些有效的用途,我们稍后会介绍,但通常情况下应该避免使用它们。从 Java 9 开始,终结器已经被弃用,但它们仍然被 Java 库使用。Java 9 中终结器的替代品是清除器。 清除器的危险比终结器小,但仍然不可预测、缓慢,而且通常是不必要的。 ...

2023-05-08 · 9 min · 4409 words · chensoul

《Effective Java 3》笔记9:使用 try-with-resources 优于 try-finally

本文是 《Effective Java 3》第二章的学习笔记:使用 try-with-resources 优于 try-finally。 介绍 Java 库包含许多必须通过调用 close 方法手动关闭的资源。常见的有 InputStream、OutputStream 和 java.sql.Connection。关闭资源常常会被客户端忽略,这会导致可怕的性能后果。虽然这些资源中的许多都使用终结器作为安全网,但终结器并不能很好地工作。 ...

2023-05-08 · 5 min · 2336 words · chensoul

《Effective Java 3》笔记4:用私有构造函数使类不可实例化

本文是 《Effective Java 3》第二章的学习笔记:用私有构造函数使类不可实例化。 介绍 使用私有构造函数强制实现不可实例化的主要原因是防止类被意外地实例化,以使代码更加健壮和可靠。在某些情况下,我们只需要使用类中的静态方法和静态字段,而不需要创建该类的实例。如果类中没有显式地定义私有构造函数,Java 编译器将会自动为该类生成一个默认的公共构造函数,这意味着该类可以在其他类中被实例化。如果这不是我们想要的,为了防止其他人意外地实例化我们的类,我们可以将构造函数设置为私有。 ...

2023-05-05 · 5 min · 2151 words · chensoul

《Effective Java 3》笔记7:排除过时的对象引用

本文是 《Effective Java 3》第二章的学习笔记:排除过时的对象引用。 介绍 “Eliminate obsolete object references” 是一条 Java 编程最佳实践的原则,指的是在代码中及时清理不再使用的对象引用,以避免内存泄漏和性能问题。当一个对象不再需要时,应该尽快将其引用设置为 null,这样 JVM 可以及时回收它所占用的内存。 ...

2023-05-05 · 12 min · 5701 words · chensoul