您的位置:首页 > 编程语言 > Java开发

Java执行顺序

2016-01-12 22:04 281 查看
这是自己的第一篇博客,本着学习的态度,写下总结,以便自己温故而知新。近期走读了很多的代码,发现对于Java的执行顺序需要好好总结一下,清楚的明白各变量的加载顺序,有助于更快的了解代码,进行功能的扩展。

局部内部类中的变量为何要被final修饰:

局部变量会随着方法的调用完毕而消失,这时为了使这个局部变量还能继续使用,就会用final修饰,这样就会存储于堆内存中,也就相当于静态值。

对于JVM来说,分为类加载和实例化俩个阶段,对于静态变量和静态代码块来说,是随着类的创建而创建,所以对于this的关键字就不会存在,因为this是指当前正在访问的对象,可以用来引用当前对象的属性和变量,是随着对象的创建而创建。与静态变量的创建时机冲突,是矛盾的。对于构造方法会在实例化阶段创建。

总之,分析代码的设计思路,要时刻谨记Java的执行顺序,跟踪变量。

一、父类要先于子类执行,先加载静态成员变量,这是如果要对静态成员变量进行计算,可在静态代码块中执行。

二、父类的成员赋值,初始化代码块

三、父类的构造方法以及构造方法中的其他语句

四、子类的成员赋值,初始化代码块

五、子类的构造方法以及构造方法中的其他语句

注意:

一、对于静态变量以及静态代码块中的代码,在应用程序的生命周期中只加载一次,而成员变量对随着对象的创建而赋值,

当然,当对象销毁的时候,这些随对象产生的 东西就会被垃圾回收器回收。

二、对于main方法,作为程序的入口,其实也是存在于静态区中,但是它会将一份代码Copy到栈中,这样我们就可以无限的复制。

三、static修饰的内部类其实就相当于外部类的一个方法。private修饰的内部类,外部类是不能访问的

四、对于内部类可以访问外部类的成员,包括私有,但是外部类访问内部类就必须创建内部类的对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: