如何通过代码实例详细解析JAVA类生命周期?
- 内容介绍
- 文章标签
- 相关推荐
本文共计397个文字,预计阅读时间需要2分钟。
代码+public+class+TestClass+%7B+public+static+int+k%3D0%3B+public+static+TestClass+t1%3Dnew+TestClass%28%22t1%22%29%3B+public+static+TestClass+t2%3Dnew+TestClass%28%22t2%22%29%3B+public+static+int+i%3Dprint%28%22i%22%29%3B+public+static+int+n%3D99%3B+public+int+j%3Dprint%28%22j%22%29%3B+%7B+print%28%E2%80%9D
javapublic 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(Inner scope); }}
代码
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=0 2:构造块 i=1 n=1 3t1i=2n=2 4:j i=3 n=3 5:构造块 i=4 n=4 6t2i=5n=5 7:i i=6 n=6 8:静态块 i=7 n=99 =========start============ 9:j i=8 n=100 10:构造块 i=9 n=101 11initi=10n=102 =========end============
讲解
代码由上到下 依次执行
由static修饰的变量或方法是在方法区,属于类变量、类方法
new对象这个操作,new出来的对象在堆里 对象的引用在栈里
new出来的对象 方法快先构造方法执行
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计397个文字,预计阅读时间需要2分钟。
代码+public+class+TestClass+%7B+public+static+int+k%3D0%3B+public+static+TestClass+t1%3Dnew+TestClass%28%22t1%22%29%3B+public+static+TestClass+t2%3Dnew+TestClass%28%22t2%22%29%3B+public+static+int+i%3Dprint%28%22i%22%29%3B+public+static+int+n%3D99%3B+public+int+j%3Dprint%28%22j%22%29%3B+%7B+print%28%E2%80%9D
javapublic 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(Inner scope); }}
代码
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=0 2:构造块 i=1 n=1 3t1i=2n=2 4:j i=3 n=3 5:构造块 i=4 n=4 6t2i=5n=5 7:i i=6 n=6 8:静态块 i=7 n=99 =========start============ 9:j i=8 n=100 10:构造块 i=9 n=101 11initi=10n=102 =========end============
讲解
代码由上到下 依次执行
由static修饰的变量或方法是在方法区,属于类变量、类方法
new对象这个操作,new出来的对象在堆里 对象的引用在栈里
new出来的对象 方法快先构造方法执行
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

