Java执行顺序

来源:互联网 发布:阿里云ssh登录 编辑:程序博客网 时间:2024/06/07 19:28

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

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

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

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

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

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

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

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

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

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

 注意:

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

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

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

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

         四、对于内部类可以访问外部类的成员,包括私有,但是外部类访问内部类就必须创建内部类的对象。


     

       

0 0
原创粉丝点击