1使用new
new className()
2 使用 Class.forName("classPath")
3 使用classLoader
获得ClassLoader 加载类
三种方式的区别:
1 使用new 只能加载当前classPath 中的类 使用一种静态的加载方式
2 使用Class.forName() 动态加载 只能加载当前claspath 中的类 是一种动态加载
3 classLoader 动态加载 可以自己书写classLoader 加载的类可以不是classpath中的类
Class.forName() 和 classLoader 的区别
Class.forName() 加载类的时候会初始化 static 只能加载classpath 中的类
ClassLoader 初始化时不会初始static 中的代码 可以加载 不是classpath中的类