Java静态代码块和构造方法执行顺序
来源:互联网 发布:java 移动文件 编辑:程序博客网 时间:2024/04/27 22:44
package com.uno.staticBlock;import java.lang.reflect.Field;import java.util.Vector;/** * 验证静态代码块和构造代码块执行顺序 * * 1.加载父类静态代码块 * 2.加载子类静态代码块 * 3.加载父类构造代码块 * 4.父类构造方法 * 5.子类构造代码块 * 6.子类构造方法 * @author uno * */public class StaticBlock {//1.加载MyClass时,不一定会执行static代码块static ClassLoader loader = Thread.currentThread().getContextClassLoader();public static void main(String[] args) {printClassesOfClassLoader(loader);//testClassLoader();new SON();printClassesOfClassLoader(loader);}/** * 测试静态代码块是否执行 * * 2017年11月20日 * author: leipan */public static void testClassLoader(){//System.out.println("此方法加载class后不会执行static代码块," + MyClass.class + ",但会加载到ClassLoader中。");} public static void printClassesOfClassLoader(ClassLoader loader){ try { Field classesF = ClassLoader.class.getDeclaredField("classes"); classesF.setAccessible(true); Vector<Class<?>> classes = (Vector<Class<?>>) classesF.get(loader); for(Class c : classes) { System.out.println(c); } } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }class Father {static {System.out.println("Father static exec。");}{System.out.println("Father unstatic exec。");}public Father (){System.out.println("Father Construction。");}}class SON extends Father{static {System.out.println("myClass static exec。");}{System.out.println("myClass unstatic exec。");}public SON (){System.out.println("Son construction。");}}
结果:
class com.uno.staticBlock.StaticBlockFather static exec。myClass static exec。Father unstatic exec。Father Construction。myClass unstatic exec。Son construction。class com.uno.staticBlock.StaticBlockclass com.uno.staticBlock.Fatherclass com.uno.staticBlock.SON
阅读全文
0 0
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序
- java 静态代码块和构造方法执行优先顺序
- Java静态代码块和构造方法执行顺序
- java 静态代码块,构造代码块,构造方法,普通代码块的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序解析
- java静态代码块、初始化块和构造方法的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序【转】
- java静态代码块、初始化块和构造方法的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- java 静态代码块、静态变量、成员变量、构造代码块、构造方法的执行顺序
- 黑马程序员---静态代码块和构造方法执行顺序
- 静态代码块、构造代码块、构造方法执行顺序
- 静态代码块,构造代码块,构造方法执行顺序
- 小程序如何给view层追加数据
- iOS今日头条选择框、动画效果、FlappyBird游戏源码
- CSDN的积分越来越贵了
- MatlabR2012a显示使用过期的注册文件破解
- +-字符串
- Java静态代码块和构造方法执行顺序
- Python培训(3)
- solr的应用
- 重写TabLayout的点击事件
- PyQt5学习笔记06----Qt Designer自定义信号emit及传参
- spring定时任务
- 解决table列宽无法修改问题
- 设计模式(二)抽象工厂模式
- vue.js之自定义指令