Java类变量和成员变量初始化历程[Java编程]
本文“Java类变量和成员变量初始化历程[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
昨天看了一本叫做《冲破程序员基本功的16课》的书,个人感受还可以,主要对Java的本领举行了一些深化的讲授,让我对类的初始化和对象的成立有了新的熟习.
1、类的初始化
关于类的初始化:类的初始化普通只初始化一次,类的初始化主如果初始化静态成员变量.
类的编译决意了类的初始化历程.
编译器生成的class文件主要对定义在源文件中的类举行了以下的更改:
1) 先按照静态成员变量的定义次序在类内部声明成员变量.
2) 再按照原java类中对成员变量的初始化次序举行初始化.
一个java类和编译后的class对应的转换以下:
源文件:
当java源代码转换成一个class文件后,其转换成近似下面的代码:
初始化次序根据转换后对应的class类成员变量的初始化次序顺次履行,所以全部的静态成员变量都是先声明,后履行赋值的,并且赋值的次序也是按照源代码对静态成员变量初始化的次序举行的,注意:定义一个成员变量并直接初始化与在静态代码块中举行初始化是等价的,都是根据它们在源代码中定义的次序举行的.
2、对象的生成
关于对象的生成其初始化历程与类的初始化历程近似,但会增添构造函数阶段,源代码以下:
编译器转换成class文件后,会转换成近似下面的代码:
可以看到,关于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中,并且是按照java源文件的初始化次序顺次对成员变量举行初始化的,而原构造函数中的代码则移到了构造函数的最后履行.本人从前一向对类初始化历程一向没有一个深化的理解,就是搞不清毕竟是怎么初始化的,只能按照书上所说的记着了初始化次序,但是过一段时间有给忘了,所以这次总算给弄清楚了,还是按照一个模子来注释初始化机制对比好啊,不用再背了,只有理解了才能不易忘.
以上是“Java类变量和成员变量初始化历程[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |