经常会有疑问,一个类的静态变量到底会在什么时候真正创建
今天实验了下,得出如下结论。
一个类的静态变量只会在该类被实例化,或者该类调用了静态变量、静态方法的时候创建。如果该类在其他类中只是定义变量,没有实际操作,静态变量也不会被实例化。
对于单例的饿汉模式,以前一直以为只要容器中有该类,就会创建单例对象,实际上是错误的。如果一个单例类仅仅有创建对象和操作该对象属性的操作,此时用饿汉模式非常好,因为它线程安全。
如果单例类有其他静态方法的操作,就有可能实例化了不想实例化的对象,造成该资源浪费。
此时可以用双重检查,或者内部类的方式构造性能好的单例
时间: 2024-10-14 04:30:51