包含Java代码执行顺序6的词条

JAVA程序的执行顺序

在java应用程序中,main()方法是程序的入口,最先执行!

创新互联公司成立于2013年,先为辽宁等服务建站,辽宁等地企业,进行企业商务咨询服务。为辽宁企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

但是在Applet程序中是没main()方法的,init()方法会自动执行!谁先谁后,自己清楚了吧!

java程序执行顺序的问题

package org;

public class Demo {

public static void main(String[] args) throws Throwable {

/*

* 步骤 1

*

* 首先声明并初实例了一个A类的对象:a

* 程序则进入了类A当中

*/

A a = new A();

/*

* 步骤 5

*

* 通过以上步骤的判断,程序的执行顺序就显而易见了~~~

*

* 下面是执行顺序:

*

* 类AA 静态属性 b2 ---------结果:2

* 类AA 静态块 static{} ----结果:4

* 类A 静态属性 b2 ----------结果:6

* 类AA 非静态属性 b1 -------结果:3

* 类AA 非静态方法 AA() -----结果:1

* 类A 非静态属性 b1 --------结果:5

* 类A 非静态方法 A() -------结果:7

*

*/

}

}

class AA {

/*

* 步骤 3

*

* 类AA中存在着:

* 1个静态属性 b2

* 1个静态块 static{}

* 一个非静态属性 b1

* 一个构造方法 AA()

*/

public AA() {

System.out.println("1");

}

public static B b2 = new B("2");

private B b1 = new B("3");

static {

B b3 = new B("4");

}

}

class A extends AA {

/*

* 步骤 2

*

* 因为类A继承自类AA

* 所以当类A被实例化的时候会先执行类A的父类(AA)

*

* 程序会对比类A和其父类AA

*

* 此时则是程序执行编译顺序的关键所在

*

* 属性的优先级要大于方法的优先级

* 静态属性的优先级要大于非静态属性

* 静态方法(包括静态块)的优先级要大于非静态方法(包括构造方法)

*

* 总结起来就是:静态属性非静态属性静态方法非静态方法

*

* 而在子类与父类中的执行编译顺序则为:(由上至下)

*

* (父类)静态属性

* (父类)静态方法

* (子类)静态属性

* (子类)静态方法

* (父类)非静态属性

* (父类)非静态方法

* (子类)非静态属性

* (子类)非静态方法

*

* 所以程序进入到了类AA中并与类A进行比较!!

*/

/*

* 步骤 4

*

* 类A中存在着:

*

* 一个静态属性 b2

* 一个非静态属性 b1

* 一个构造函数 A()

*/

private B b1 = new B("5");

private static B b2 = new B("6");

public A() {

System.out.println("7");

}

}

class B {

public B(String str) {

System.out.println(str);

}

}

不知道我的解释你能不能理解~~ 希望对你会有帮助!!

如果哪里没看懂就补充问题吧~~我经常来的!!祝你好运!!

java 代码执行顺序

这两句话只是设置属性啊。

file.setSize(200,300);

file.setVisible(true);

不会最后执行的。你打个断点在

file.Calendar();//显示当前日期

,然后看file属性,应该是会被改变的

java方法执行顺序

先后顺序如下!

1.静态块

2.块

3.构造器

4.父类构造器

运行顺序为:

1. 静态块

2. 父类构造器

3. 本类中的块

4. 本类的构造器


当前标题:包含Java代码执行顺序6的词条
文章链接:http://scyanting.com/article/ddcdggp.html