類加載時期:
public class TestClassLoad {
static int i;
static {// 類相關(guān)
System.out.println("static Test");
}
{// 對象相關(guān)
System.out.println("語句塊Test");
}
public TestClassLoad() {
System.out.println("TestClass");
}
// TestClassLoad.main("");
public static void main(String[] args) {
System.out.println("begin");
TestClassLoad.i = 3;// 類名.時加載類
System.out.println("i= " + i);
TestClassLoad tcl = null;
System.out.println("end");
new TestClassLoad();// new 對象時加載類
new TestClassLoad();
}
}
靜態(tài)方法重寫:
public class TestStaticMethod
extends Super{
int i1 = 0;
static int i2 = 0;
public static void test(){
//i1 = 10;//非靜態(tài)屬性不能直接使用
i2 = 10;
System.out.println("subclass");
}
public static void main(String[] args){
Super s = new TestStaticMethod();
s.test();//=Super.test();
}//靜態(tài)方法可以重寫,但是發(fā)生多態(tài)時,調(diào)重寫前的
}
class Super{
public static void test(){
System.out.println("super");
}
}
靜態(tài)屬性:
public class TestStaticField {
private int i1 = 0;//在堆內(nèi)存
private static int i2 = 0;//在池中
public TestStaticField(){
i1++;
i2++;}
public static void main(String[] args) {
System.out.println(TestStaticField.i2);
TestStaticField tf1 = new
TestStaticField();
TestStaticField tf2 = new
TestStaticField();
System.out.println(tf1.i1);
System.out.println(tf1.i2);
System.out.println(tf2.i1);
System.out.println(tf2.i2);
}
}