Class.formName 和 ClassLoader 类加载的区别
Posted wanjun-top
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Class.formName 和 ClassLoader 类加载的区别相关的知识,希望对你有一定的参考价值。
User.java
public class User { private static int a = 10; { System.out.println("普通代码块.."); } static { System.out.println("静态变量" + a); System.out.println("静态代码块.."); } }
TestClassLoad.java
public class TestClassLoad { public static void main(String[] args) throws ClassNotFoundException { ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); Class<?> loadUser = systemClassLoader.loadClass("User"); String name = loadUser.getName(); System.out.println(name); System.out.println("-------------------"); Class<?> forName = Class.forName("User"); String name2 = forName.getName(); System.out.println(name2); } }
运行结果:
User
-------------------
静态变量10
静态代码块..
User
说明:区别在于,通过 Class.forName 加载类会 执行 静态方法。
以上是关于Class.formName 和 ClassLoader 类加载的区别的主要内容,如果未能解决你的问题,请参考以下文章