首页 > 代码库 > 静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序
静态属性、静态代码块、静态方法、构造方法、普通方法的执行顺序
静态代码块:
是在当类被载入(内存)时,(最先被调用的),静态代码块被执行,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。
非静态代码块:
是在当类的对象被创建载入(内存)时,(最先被调用的),每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调用。
对象载入之前,一定要是类先被载入。
静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。
加载类的动作没有什么标志性,但是加载对象的标志动作就是new动作,会去执行
更精简:
静态代码块:类每次加载到内存中调用一次,并最先调用
非静态代码块:类的对象每次加载到内存中调用一次,并最先调用,然后是调用对应的构造方法
静态方法、非静态方法:都是进行方法调用时才执行,调用静态方法,前提是:类已经加载到内存中;调用非静态方法,前提是类的对象已经加载到内存中。
那么,
类什么时候被加载/类加载时机:【即类被使用时,就会加载】
第一:生成该类对象的时候,会加载该类及该类的所有父类;
第二:访问该类的静态成员的时候;
第三:class.forName("类名");
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。