Runtime的单例实现

Runtime的单例实现

Content #

Java 核心类库自己的单例实现,比如java.lang.Runtime,你会发现:它并没使用复杂的双检锁之类。请问它是如何实现的?

静态实例被声明为 final,这是被通常实践忽略的,一定程度保证了实例不被篡改(反射之类可以绕过私有访问限制),也有有限的保证执行顺序的语义。

private static final Runtime currentRuntime = new Runtime();
private static Version version;
// …
public static Runtime getRuntime() {
  return currentRuntime;
}
/** Don't let anyone else instantiate this class */
private Runtime() {}

From #