Java Static 和 构造方法 和 默认{}执行顺序 下面给你参考。http://java-mzd.iteye.com/blog/838683这个为什么得问JVM设计时候怎么想的了而且我觉得挺合理的。 嘿嘿。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你能把JVM的执行顺序贴出来吗? 1、进入 启动类 Test 的main2、因为 Test extends Test1,所以加载 Test1,加载时先 执行static部分的代码 ,加载完 Test1; 63、接着加载 Test,执行Test的static部分的代码 34、new Test() ,需要先初始化 Test1的非static部分代码 即类定义中{}中的代码,因为没有{}部分代码,所以执行构造函数 55、接着执行Test的非static部分代码即类定义中{}中的代码,从类定义由上往下 1 46、执行Test的构造函数 2所以顺序:635142 请参考下这个链接吧,可能对你有帮助JAVA初始化顺序 建议看看<深入java虚拟机>一书关于类初始化的顺序4为什么在2前面?答:因为每个对象在堆中创建的时候,都要执行类的<init>方法来初始化对象,这个init方法执行如下三个步骤:1.如果有父类,则执行父类的init方法2.执行对象的初始化方法(直接给成员变量赋值,初始化块都在这阶段执行,谁放在前面就先执行谁)3.执行构造方法 参考下:http://topic.csdn.net/u/20090625/14/766E4863-9B61-4E09-A6A7-A51A07A3D20D.htmlhttp://wenwen.soso.com/z/q191435823.htm class Paratrooper implements Runnable { public void run() { System.out.print(Thread.currentThread().getName() + " "); }} public class Jump { static Paratrooper p; static { p = new Paratrooper(); } { Thread t1 = new Thread(p, "bob"); t1.start(); } Jump() { Thread t2 = new Thread(p, "ted"); t2.start(); } public static void main(String[] args) { new Jump(); new Thread(new Runnable() { public void run() { ; }}, "carol").start(); new Thread(new Paratrooper(), "alice").start(); } } 请问各位大侠:这里的执行结果为什么是:ted bob alice 字符串处理问题 问:如果修改jar包的配置文件 异常问题 我的全部(90)分求 wappush源代码 怎样去掉字符串里ip地址! about modeldialog 菜鸟问题,有关JOptionPane.showInputDialog 在serversock中,接受用字节流接受一个汉字,字节流动长度为3,为何不是2?如何获取正确的长度? java多线程问题 菜鸟问题 为何我的包不能被import 求一个正则表达式 新手求助,我有点搞蒙了。。。
2、因为 Test extends Test1,所以加载 Test1,加载时先 执行static部分的代码 ,加载完 Test1;
6
3、接着加载 Test,执行Test的static部分的代码
3
4、new Test() ,需要先初始化 Test1的非static部分代码 即类定义中{}中的代码,因为没有{}部分代码,所以执行构造函数
5
5、接着执行Test的非static部分代码即类定义中{}中的代码,从类定义由上往下 1
4
6、执行Test的构造函数
2所以顺序:635142
JAVA初始化顺序
4为什么在2前面?答:
因为每个对象在堆中创建的时候,都要执行类的<init>方法来初始化对象,这个init方法执行如下三个步骤:
1.如果有父类,则执行父类的init方法
2.执行对象的初始化方法(直接给成员变量赋值,初始化块都在这阶段执行,谁放在前面就先执行谁)
3.执行构造方法
http://wenwen.soso.com/z/q191435823.htm
public void run() {
System.out.print(Thread.currentThread().getName() + " ");
}
}
public class Jump {
static Paratrooper p;
static {
p = new Paratrooper();
}
{
Thread t1 = new Thread(p, "bob");
t1.start();
}
Jump() {
Thread t2 = new Thread(p, "ted");
t2.start();
} public static void main(String[] args) {
new Jump();
new Thread(new Runnable() { public void run() { ; }}, "carol").start();
new Thread(new Paratrooper(), "alice").start();
} }
请问各位大侠:
这里的执行结果为什么是:
ted bob alice