一道关于加载顺序的题目分析
来源:互联网 发布:真正的豪门生活知乎 编辑:程序博客网 时间:2024/06/05 02:04
package com.gt.world.oa.aaa;/** * * @author GT */public class Test20140331 { public static int k = 0; public static Test20140331 t1 = new Test20140331("t1"); public static Test20140331 t2 = new Test20140331("t2"); public static int i = print("i"); public static int n = 99; public int j = print("j"); { print("构造块"); } static { print("静态块"); } public Test20140331(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++i; ++n; } private static int print(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++n; return ++i; } public static void main(String[] args) { Test20140331 t = new Test20140331("init"); Test20140331 t2 = new Test20140331("init2"); } }/** * * 1 程序从main函数开始执行 ,执行main函数,需要先加载class文件 * 2 加载class文件的同时,同时初始化static成员变量和static块,执行顺序为从上到下依次执行 * 3 加载class完成之后,初始化成员变量。注:普通代码块,可以看作成员变量,执行顺序为从上到下依次执行 * 4 上面的过程完成之后,再从main函数的第一条语句开始执行。 * 5 注:静态成员变量和静态代码块只会 在加载class文件的时候 执行一次 *//** * public static Test20140331 t1 = new Test20140331("t1"); * 1> 1:j i=0 n=0 * 2> 2:构造块 i=1 n=1 * 3> 3:t1 i=2 n=2 * * public static Test20140331 t2 = new Test20140331("t2"); * 4> 4:j i=3 n=3 * 5> 5:构造块 i=4 n=4 * 6> 6:t2 i=5 n=5 * * public static int i = print("i"); * 7> 7:i i=6 n=6 * * public static int n = 99; * 8> n=99 * * static { print("静态块"); } * 9> 8:静态块 i=7 n=99 * * Test20140331 t = new Test20140331("init"); * 10> 9:j i=8 n=100 * 11> 10:构造块 i=9 n=101 * 12> 11:init i=10 n=102 * * * Test20140331 t = new Test20140331("init2"); * 13> 12:j i=11 n=103 * 14> 13:构造块 i=12 n=104 * 15> 14:init2 i=13 n=105 * */
0 0
- 一道关于加载顺序的题目分析
- 一道关于实例化顺序的题目
- 一道关于jvm加载的简单题目
- 关于类加载机制的一道题目
- 关于继承的一道题目
- 一道关于排序的题目
- 关于fork的一道题目
- 一道关于继承的题目
- 一道类加载相关的题目
- 笔试的一道关于测试的题目
- 关于byte的一道有趣的题目
- 一道简单题目的数据结构算法分析
- 一道关于时间复杂度的数据结构题目
- 一道面试题目,关于this的理解
- 关于函数声明表达式的一道题目
- 一道关于运用Hashtable的题目
- 关于腾讯面试的一道题目
- 关于Notify() wait()的一道面试题目
- Jungle Roads
- 数据结构学习笔记(8.循环队列与链队列)
- 岁月的钟声敲响爱的音符
- 手动给帮助类打 jar包 和 给Web项目打 war包
- Java NIO系列教程(一) Java NIO 概述
- 一道关于加载顺序的题目分析
- 20140331学习_JDK基础与环境设置
- 复制输入到输出,连续空格合并为一个
- Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
- Java Date格式化输出
- 占位
- Java NIO系列教程(三) Buffer
- 占位
- linux IPTABLES 设置