Class.forName、ClassLoader.loadClass、newInstance区别

1.class.forName("类的完整路径")

  1)将类的class文件加载到jvm中(通过类的全限定名加载类的二进制字节流,转换成对应的数据结构 到方法区)

   2)会经过 验证、准备、解析

   3)进行初始化(执行构造器+类静态static块),得到一个对象

Class clazz= Class.forName("java.util.HashMap");
  System.out.println(clazz.getName());

2.ClassLoader.loadClass("完整类名”)

---加载类class文件的字节码文件到jvm中,不执行类的static块,不进行初始化。

3.clazz.newInstance();

---调用类的无参构造器进行初始化

发布了18 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Annie_ya/article/details/105199142