A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 唯一和弦 于 2016-11-18 20:37 编辑

获得字节码文件对象有三种方式:
例如:public class Person {
    static {
        System.out.println("我是静态代码块!");
    }
}
1,Class clazz=new Person().getClass();
2,Class clazz=包路径.Person.class;
3,Class clazz=Class.forName("包路径.Person");
但为什么第二种不会运行构造代码块呢,是因为类没有加载么?那为什么可以获得字节码文件对象呢?

2 个回复

倒序浏览
构造代码块是在对象创建时才会执行,第二种并没有创建对象
回复 使用道具 举报
1413157322 发表于 2016-11-24 23:12
构造代码块是在对象创建时才会执行,第二种并没有创建对象

谢谢 forname是获得字节码文件对象 但也运行了构造代码块呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马