码迷,mamicode.com
首页 > 其他好文 > 详细

静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序

时间:2014-07-29 11:58:46      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:使用   for   代码   new   对象   内存   初始化   class   

静态代码块:

是在当类被载入(内存)时,(最先被调用的),静态代码块被执行,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。

 

非静态代码块:

是在当类的对象被创建载入(内存)时,(最先被调用的),每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调用。

 

对象载入之前,一定要是类先被载入。

 

静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。

 

加载类的动作没有什么标志性,但是加载对象的标志动作就是new动作,会去执行

 

更精简:

静态代码块:类每次加载到内存中调用一次,并最先调用

非静态代码块:类的对象每次加载到内存中调用一次,并最先调用,然后是调用对应的构造方法

静态方法、非静态方法:都是进行方法调用时才执行,调用静态方法,前提是:类已经加载到内存中;调用非静态方法,前提是类的对象已经加载到内存中。

 

那么,

类什么时候被加载/类加载时机:【即类被使用时,就会加载】
第一:生成该类对象的时候,会加载该类及该类的所有父类;
第二:访问该类的静态成员的时候;
第三:class.forName("类名");

静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序,布布扣,bubuko.com

静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序

标签:使用   for   代码   new   对象   内存   初始化   class   

原文地址:http://www.cnblogs.com/cyh123/p/3874416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!