Java执行顺序

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

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

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

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

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

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

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

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

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

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

 注意:

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

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

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

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

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


     

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值