import java.io.IOException;
import java.io.InputStream;
/**
* 类加载器与instanceof演示
* */
public class ClassLoadTest {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
ClassLoader classLoader = new ClassLoader() {
@Override
public Class<?> loadClass(String name) throws ClassNotFoundException{
try {
String fileName = name.substring(name.lastIndexOf(".")+1)+".class";
InputStream is = getClass().getResourceAsStream(fileName);
if(is == null){
return super.loadClass(name);
}
byte[] b = new byte[is.available()];
is.read(b);
return defineClass(name,b, 0, b.length);
} catch (IOException e) {
// TODO: handle exception
throw new ClassNotFoundException(name);
}
}
};
Object object = classLoader.loadClass("com.jvm.ch7.ClassLoadTest").newInstance();
System.out.println(object.getClass());
System.out.println(object instanceof com.jvm.ch7.ClassLoadTest);
}
}
分享到:
相关推荐
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...
看完一个Java加载原理教程后,写了这个自己的类加载器,作个笔记,以便以且使用
自定义类加载器实现自定义加载。自定义类加载器实现自定义加载
DevLoader.zip tomcat 类加载器
Java类加载器可以直接从Maven存储库加载并运行类,能在运行时解决依赖关系
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构,理解类加载器:J2EE 环境下的 log4j.files
简单的自定义类加载器问候世界hello word,基于磁盘的ClassLoader
类装载器学习一、类加载器的基本概念 类装载器学习一、类加载器的基本概念 类装载器学习一、类加载器的基本概念
java 类加密 使用类加载器解密加载类 反射执行main
类加载器
ClassLoader 三种类加载方式 Boostrap Extenxsion 以及Application ClassLoad分别适用的场景
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
java应用程序类加载器(ClassLoader for java Application),类似exe4j, 方便启动java程序, 配置灵活,支持多平台选择性配置
(父子关系一般不会以继承的关系实现,而是以组合关系来复用父加载器的代码)工作过程如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请
什么是类加载器和什么是双亲委派机制
ClassLoader的API使用和自定义
类加载器是Java最强大的特征之一。但是开发者常常忘记类加载组件。类加载器是在运行时负责寻找和加载类文件的类。Java允许使用不同的类加载器,甚至自定义的类加载器。类加载器从源文件(通常是.class 或 .jar文件)...
3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4
java类加载器学习三、类加载器的委托模式