读书人

Java代码实施顺序分析

发布时间: 2012-12-23 11:28:15 作者: rapoo

Java代码执行顺序分析

?

?

版权声明:这个系列的文章都是看了别人的文章有感而发创作的,所谓"知识没有抄袭之说",如果有人发现雷同或属巧合或属非巧合,不过不过本人绝对不屑copy然后paste的勾当,那样只会产生信息的冗余。

朋友们装载请记得注明出处!

?

?

?

记得胡哥曾经说过,想弄懂新的技术点有两条路:一 自己假设然后验证然后调整你的假设再验证;二 ?看别人现成的然后记住。今天我选了第一条路来挖掘“Java代码的执行顺序”这个主题的东东。

?

?

第一步:初步测试??静态块、普通块、静态方法、main方法、构造函数执行顺序。

?

?

?

?

?

PS:本文有误,现更正如下:

对单个类,JVM加载阶段(编译阶段):

1、给静态变量分配内存空间

2、用默认值初始化静态变量

3、按照静态变量和静态块的申明顺序执行初始化

4、如果创建对象;否则,直接结束

5、先给所有实例成员分配内存空间并用默认值初始化

6、按顺序执行实例块和变量

7、执行构造方法


如果是一个多类的应用程序,静态部部分只有在编译阶段生成类唯一的Class对象时加载一次。

并且,如果要创建子类对象,总是默认调用父类的无参构造器(除非显示调用父类构造器)。

因为如果父类的一些成员没有加载,直接加载子类根本不符合"父生子"的规律,并且实际上也

会引起混乱(如父类protected变量没有初始化,却在先加载子类是使用到了,到哪里去找呢?

内存中都还没有加载到?)

?

?

?

?

?

?

?

?

?

1 楼 cantellow 2010-12-23 分析的精神值得赞赏
但是,当你看到了《深入java虚拟机》这一本书之后,你就都全明白了。 2 楼 liaofeng_xiao 2010-12-23 cantellow 写道分析的精神值得赞赏
但是,当你看到了《深入java虚拟机》这一本书之后,你就都全明白了。
跟楼上一样,推荐你看《深入Java虚拟机》

ps:不知道为啥那么多人说这本书翻译的差
起初看的时候有同感,后来发现这本书翻译得无比好 3 楼 贾懂凯 2010-12-23 cantellow 写道分析的精神值得赞赏
但是,当你看到了《深入java虚拟机》这一本书之后,你就都全明白了。
呵呵~我也明白看别人的书会学的快,不过有的时候自己分析分析也是种乐趣。 4 楼 cantellow 2010-12-23 liaofeng_xiao 写道cantellow 写道分析的精神值得赞赏
但是,当你看到了《深入java虚拟机》这一本书之后,你就都全明白了。
跟楼上一样,推荐你看《深入Java虚拟机》

ps:不知道为啥那么多人说这本书翻译的差
起初看的时候有同感,后来发现这本书翻译得无比好
曹晓刚看到的话,肯定不是滋味吧。
另,其实我根本没看完LZ写的什么,因为你的排版实在不敢恭维。 5 楼 freish 2010-12-23 liaofeng_xiao 写道cantellow 写道分析的精神值得赞赏
但是,当你看到了《深入java虚拟机》这一本书之后,你就都全明白了。
跟楼上一样,推荐你看《深入Java虚拟机》

ps:不知道为啥那么多人说这本书翻译的差
起初看的时候有同感,后来发现这本书翻译得无比好



看第一遍确实觉得很难受,看第二遍第三遍就好多了

读书人网 >编程

热点推荐