标签:使用 for 代码 new 对象 内存 初始化 class
静态代码块:
是在当类被载入(内存)时,(最先被调用的),静态代码块被执行,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。
非静态代码块:
是在当类的对象被创建载入(内存)时,(最先被调用的),每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调用。
对象载入之前,一定要是类先被载入。
静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。
加载类的动作没有什么标志性,但是加载对象的标志动作就是new动作,会去执行
更精简:
静态代码块:类每次加载到内存中调用一次,并最先调用
非静态代码块:类的对象每次加载到内存中调用一次,并最先调用,然后是调用对应的构造方法
静态方法、非静态方法:都是进行方法调用时才执行,调用静态方法,前提是:类已经加载到内存中;调用非静态方法,前提是类的对象已经加载到内存中。
那么,
类什么时候被加载/类加载时机:【即类被使用时,就会加载】
第一:生成该类对象的时候,会加载该类及该类的所有父类;
第二:访问该类的静态成员的时候;
第三:class.forName("类名");
静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序,布布扣,bubuko.com
静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序
标签:使用 for 代码 new 对象 内存 初始化 class
原文地址:http://www.cnblogs.com/cyh123/p/3874416.html