您的位置:首页 > 其它

JVM-类的四种载入方式

2017-11-15 13:53 281 查看
package org.burning.sport.javase.classloader;

public class ClassLoaderMain {
public static void main(String[] args) {

ClassLoaderMain clm = new ClassLoaderMain();
//1.使用Class静态方法Class.forName
//        clm.loadClassMethod1();

//2.使用ClassLoader
//        clm.loadClassMethod2();

//3. 使用类.class方式
//        clm.loadClassMethod3();

//4. 使用对象的getClass方法
clm.loadClassMethod4();
}

public void loadClassMethod1() {
try {
Class<?> clazz = Class.forName("org.burning.sport.javase.classloader.ClassLoaderModel");
ClassLoaderModel clm = (ClassLoaderModel)clazz.newInstance();
System.out.println(clm);
} catch (Exception e) {
e.printStackTrace();
}
}

public void loadClassMethod2() {
ClassLoader cl = this.getClass().getClassLoader();
try {
Class<?> clazz = cl.loadClass("org.burning.sport.javase.classloader.ClassLoaderModel");
ClassLoaderModel clm = (ClassLoaderModel) clazz.newInstance();
System.out.println(clm);
} catch (Exception e) {
e.printStackTrace();
}
}

public void loadClassMethod3() {
Class<?> clazz = ClassLoaderModel.class;
try {
ClassLoaderModel str = (ClassLoaderModel)clazz.newInstance();
System.out.println(str);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}

public void loadClassMethod4() {
ClassLoaderModel clm = new ClassLoaderModel();
Class<?> clazz = clm.getClass();
try {
ClassLoaderModel ss = (ClassLoaderModel)clazz.newInstance();
System.out.println(ss);
} catch (Exception e) {
e.printStackTrace();
}

}
}

https://gitee.com/play-happy/base-project
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: