将常量设为 null 是否有目的?

ast*_*eri 4 java null constants

我最近在一些代码中看到一些内容,这让我很好奇它是否真的具有某种优化或性能影响。常量文件中有这样一行:

public static final Object NULL = null;
Run Code Online (Sandbox Code Playgroud)

然后,在整个代码中,null将使用 来引用它,而不是显式使用关键字Constants.NULL

我以前见过这样的事情:

public static final String EMPTY_STRING = "";
Run Code Online (Sandbox Code Playgroud)

""...如果试图避免创建大量重复实例,这似乎至少有一点意义。但它真的有什么区别吗null,因为它实际上不是任何类型的对象?我有什么遗漏的吗?

Aur*_*and 5

两者都没有任何意义。在代码中的多个位置使用""不会创建 String 对象的多个实例。除非您显式调用new String("");JVM,否则只会创建一个字符串池并引用每个特定字符串的一个实例。