展开全部
这个不是你说的
第一: final 修饰属性,只是代表该属性的引用在使用的过程不可以发生改变。 及 a 只能指向 new Single()这个对62616964757a686964616fe59b9ee7ad9431333335306333象
第二: static修饰属性,该属性就和对象脱离的关系,不在依赖对象,只和类有关系。
所以 public static Single a = new Single(); 这么写后, 当虚拟机第一次加载 Single的时候,初始化 对象并赋值给 变量 a (引用不可更改啦)
以后访问 Single的时候,均不在实例化a
想要判断是否是一个对象的方法class Single {
public static Single a = new Single();
public synchronized static Single getInstance(){
return a ;
}
}
public class Test{
public static void main(String[] args){
Single s = Single.getInstance();
Single s1 = Single.getInstance();
System.out.println(s==s1); //返回true 一个对象 , 返回false 每次都new一个对象
}
}