Java

Java 中为什么要避免使用 Finalizer?

Java 中的 finalize() 方法是 Object 类自带的一个方法,因所有的类都继承自 Object,所以所有类都是 Object 的子类,我们在子类重写 finalize() 方法就可以说使用了 Finalizer,使用其的目的一般是希望做一些对象销毁前最终的资源释放操作。而上文「Java try-with-resources 特性详解」里边介绍过,针对需要释放的资源,可以通过实现 AutoClosable 接口以及结合使用 try-with-resources 特性来实现。而 Finalizer,一般仅用于原生资源(非 Java 对象,不受 JVM 管理,一般通过调用原生方法来实现对其的释放)的释放这一个场景,除此之外,都应当避免对其的使用。

阅读更多

Java 建造者模式(Builder Pattern)知多少?

因 Java 中没有命名参数的概念,当一个类的构造器可选参数太多的时候,代码可读性会变得很差。于是,建造者模式(Builder Pattern)应运而生。 本文首先举了一个真实的例子,引出构造器可选参数太多时应如何去处理的问题。然后,分析传统的伸缩式构造器模式与 JavaBeans 构造器模式在处理该问题时存在的不足;最后,引出了建造者模式,介绍了其设计思路与优点。

阅读更多

Java try-with-resources 特性详解

Java 7 中引入了 try-with-resources 特性来保证资源使用完毕后,自动进行关闭。任何实现了 java.lang.AutoCloseable 接口的类,都可以看作是资源,也都可以使用该特性。本文将详细介绍该特性的使用方法与注意事项。

阅读更多