通過代碼實例解析JAVA類生命周期
代碼
public class TestClass { public static int k=0; public static TestClass t1=new TestClass('t1'); public static TestClass t2=new TestClass('t2'); public static int i=print('i'); public static int n=99; public int j=print('j'); { print('構造塊'); } static { print('靜態塊'); } public TestClass(String str) { System.out.println((++k)+''+str+'i='+i+'n='+n); ++n; ++i; } public static int print(String str){ System.out.println((++k) +':' + str + ' i=' + i + ' n=' + n); ++n; return ++ i; } public static void main(String[] args){ System.out.println('=========start============'); TestClass t = new TestClass('init'); System.out.println('=========end============'); }}
執行結果
1:j i=0 n=02:構造塊 i=1 n=13t1i=2n=24:j i=3 n=35:構造塊 i=4 n=46t2i=5n=57:i i=6 n=68:靜態塊 i=7 n=99=========start============9:j i=8 n=10010:構造塊 i=9 n=10111initi=10n=102=========end============
講解
代碼由上到下 依次執行
由static修飾的變量或方法是在方法區,屬于類變量、類方法
new對象這個操作,new出來的對象在堆里 對象的引用在棧里
new出來的對象 方法快先構造方法執行
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: