创建一个static final域和final域的类,说明二者间的区别。
首先,main方法在类Difference中,所以在进入main之前JVM会先加载Difference类。
类加载时,其静态变量sft就会初始化,此时Test的构造器会被调用。而且静态变量只会初始化一次。
是所有实例对象共有的,即使以后通过类或实例对象用到它,也不会再初始化。
当运行到Difference d1 = new Difference("d1"); 实例对象有一个属性ft,ft要初始化,此时Test的构造器会被调用。
由于ft不是静态的,所以每new 一个Difference,都要初始化一次。
网友评论