Java static理解

887 ワード

public class TestStatic {
	static int i;
	
	static{
		System.out.println("Whether the first load...");
	}
	
	public TestStatic() {
		// TODO Auto-generated constructor stub
		System.out.println("non-arg...");
		i=4;
	}
	
	public TestStatic(int j){
		System.out.println("has-arg...");
		i=j;
	}
	
	public static void main(String args[]){

		TestStatic t1 = new TestStatic(10);
		System.out.println(t1.i);
		TestStatic t2 = new TestStatic();
		//t2.i=8;
		System.out.println(t1.i);
		System.out.println(t2.i);
	}
	
}

出力結果:Whether the first load...has-arg...10 non-arg...4
  • staticメソッドブロックは、クラスの初期化前に実行され、static変数はインスタンスに依存するが、特定のインスタンスに依存しない(この変数を呼び出すたびに他の値が変更される).