类加载器
来源:互联网 发布:迅龙数据恢复下载安装 编辑:程序博客网 时间:2024/06/06 19:54
(1)使用类加载器获取类对象
Class clazz=Claass.forName(“com.zking.entity.Person”);
(2)查看类对象的类加载器
ClassLoader classLoader=class.getClassLoader(); App
ClassLoader classLoaderParent=classLoader.getParent(); Ext
ClassLoader classLoaderGrandParent=classLoaderParent.getParent(); null
2、类加载器的类型
<1>应用类加载器App:加载自己写的类或者jar包下面的类
<2>加载jdk/jre/lib/ext/下面的所有jar包
<3>根类加载器null:加载jdk/jre/lib/jar(所有类加载器的父加载器)
3、自定义类加载器
新建一个类用来加载对象
public class TestClassLoader {
@Test
public void test3() throws InstantiationException, IllegalAccessException{
//使用自己的类加载器 加载对象
try {
Class clazz=Class.forName("com.zking.entity.Person", true, new ClassLoaderDIY());
System.out.println(clazz.newInstance());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 自定义类加载器
* @author Administrator
*
*/
public class ClassLoaderDIY extends ClassLoader{
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
System.out.println("自定义类加载器");
System.out.println(name);
//所有的.替换成\
name=name.replaceAll("\\.", "/");
System.out.println("替换后:"+name);
//根据name找到桌面上 相对应的 person.class文件
String desktopPath="D:\\桌面文件\\桌面\\"+name+".class";
System.out.println(desktopPath);
try {
FileInputStream fis=new FileInputStream(desktopPath);
System.out.println(fis.available());
int len=0;
byte[] b=new byte[fis.available()];
len=fis.read(b);
return defineClass(null,b,0,len);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
- 加载、类加载、类加载器
- 类加载机制及类加载器加载Class流程
- 类加载器---类加载器简介
- Java类加载器加载类顺序
- 类加载器---类加载机制
- Java类加载器加载类顺序
- Java类加载器加载类顺序
- Java类加载器加载类顺序
- 类加载器和类加载机制
- 使用类加载器加载配置文件
- 用类加载器加载配置文件
- 用类加载器加载配置文件
- 类加载器的加载机制
- 用java类加载器加载资源
- 扩展类加载器的加载问题
- java类加载器的加载顺序
- 使用类加载器加载配置文件
- Java 类加载器以及加载机制
- Nginx WEB 安装
- Intellij IDEA 快捷键整理
- jvm-2-gc
- MAVEN的安装和Myeclipse+maven的配置和使用
- 【es6】函数
- 类加载器
- Banner
- ftp上传文件显示553错误,以及linux服务器文件修改777权限
- 安装teamviewer 远程桌面
- JS实现全选反选全不选
- windows平台tensorboard的配置及使用
- Java基础配置环境变量,莫问前程,虚心学习
- 为什么VSCode的JS编辑模式频繁地自动格式化代码,打字时稍微停顿一下光标就移动到分号处还得手动弄回来,体验很差
- ACM结课总结