import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; public class MyClassLoader extends ClassLoader{ private String name;//类加载器的名字 private String path = "F:\\";//加载类的路径 private static final String fileType = ".class";//文件的扩展名 public MyClassLoader(String name){ super();//显式地调用父类构造器,将该加载器的父加载器设置为默认的系统加载器 this.name = name; } public MyClassLoader(ClassLoader parent,String name){ super(parent);//设置该加载器的父加载器 this.name = name; } //将java文件中的数据存储到字节数组中 private byte[] loadClassData(String name){ byte[] data = null;//存储字节码 InputStream ips = null; ByteArrayOutputStream baos = null; try{ String cname = name.replace(".", "\\");//获取正确的路径格式 ips = new FileInputStream(new File(path+cname+fileType)); baos = new ByteArrayOutputStream(); int ch = 0; while(-1 != (ch = ips.read()) ){ baos.write(ch);//从文件输入流中读取数据,将读到的数据写到字节数组输出流中 } data = baos.toByteArray(); ips.close(); baos.close();//关闭输入输出流 }catch(Exception ep){ ep.printStackTrace(); } return data; } //获取Class对象 public Class<?> findClass(String name) throws ClassNotFoundException { byte[] data = this.loadClassData(name); return this.defineClass(name, data, 0, data.length); } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String toString(){ return this.name; } //测试方法 public static void test(ClassLoader loader) throws Exception{ Class<?> c = loader.loadClass("First"); c.newInstance(); } public static void main(String[] args) throws Exception { MyClassLoader loader1 = new MyClassLoader("loader1"); loader1.setPath("F:\\myapp\\loader1\\"); MyClassLoader loader2 = new MyClassLoader(loader1,"loader2"); loader2.setPath("F:\\myapp\\loader2\\"); test(loader1); test(loader2); } }
public class First { public First(){ System.out.println("First的类加载器是:"+this.getClass().getClassLoader()); new Second(); } }
public class Second { public Second(){ System.out.println("Second的类加载器是:"+this.getClass().getClassLoader()); } }
您还没有登录,请您登录后再发表评论
详细描述JVM【50Page】 1:JVM内存模型:类加载机制【转载、验证、准备、解析、初始化】+类装载器【装载器分类、加载原则】+运行时数据区【方法区、堆、虚拟机栈、本地方法栈、程序计数器】。 2:垃圾回收:垃圾确定...
jvm从入门到入魔,笔记非常详细,笔记pdf有55页,图文皆备。
这篇文章我们以输出 "Hello, World" 来开始字节码之旅,如果之前没有怎么接触过字节码的话,这篇⽂章应该能够让你对字节码有⼀个最基本的认识。
本系列课程从JVM基础到高级实战,老师手把手教你如何进行JVM调优,思路清晰,没有废话,旨在挑战高薪。 课程亮点: 1、基于阿里arthas进行JVM调优; 2、基于代码排查OOM问题,拒绝空讲; 3、总结JVM通用的调优思路;...
jvm 配置jvm参数 配置jvm参数
jvm源码
jvm源码,jvm-native的源码,jvm支行机制,可对jvm的运行过程进行分析 个人网站:https://www.zhangjunbk.com
尚硅谷jvm课件整理ppt
JVM图解-JVM指令-JVM原型图.rar
如果不声明volatile,变量装载到本地变量 中,或者cpu cache中,多线程下很容易导 致状态不⼀一致。 • 声明了volatile,每次访问的都是主存中的数 据,⼀一致性能提升,但是还是不可靠的。 • volatile字段的访问...
46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT...
深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm
从JVM内存管理的角度谈谈静态方法和静态属性
从 0 开始带你成为JVM实战高手
主要是JVM内存分配及简单的JVM性能调优
JVM面试资料。 JVM结构:类加载器,执行引擎,本地方法接口,本地内存结构; 四大垃圾回收算法:复制算法、标记-清除算法、标记-整理算法、分代收集算法 七大垃圾回收器:Serial、Serial Old、ParNew、CMS、Parallel...
动态编译字符串成java,并且添加class到jvm
jvm 详细介绍,了解jvm各个组成部分和功能
Introduction to JVM Languages English | 2017 | ISBN-10: 178712794X | 390 pages | PDF/MOBI/EPUB (conv) | 6.42 Mb Key Features This guide provides in-depth coverage of the Java Virtual Machine and its ...
首先讲述JVM的基本概念和原理、架构等。最后一HelloApp讲述JVM的工作过程
相关推荐
详细描述JVM【50Page】 1:JVM内存模型:类加载机制【转载、验证、准备、解析、初始化】+类装载器【装载器分类、加载原则】+运行时数据区【方法区、堆、虚拟机栈、本地方法栈、程序计数器】。 2:垃圾回收:垃圾确定...
jvm从入门到入魔,笔记非常详细,笔记pdf有55页,图文皆备。
这篇文章我们以输出 "Hello, World" 来开始字节码之旅,如果之前没有怎么接触过字节码的话,这篇⽂章应该能够让你对字节码有⼀个最基本的认识。
本系列课程从JVM基础到高级实战,老师手把手教你如何进行JVM调优,思路清晰,没有废话,旨在挑战高薪。 课程亮点: 1、基于阿里arthas进行JVM调优; 2、基于代码排查OOM问题,拒绝空讲; 3、总结JVM通用的调优思路;...
jvm 配置jvm参数 配置jvm参数
jvm源码
jvm源码,jvm-native的源码,jvm支行机制,可对jvm的运行过程进行分析 个人网站:https://www.zhangjunbk.com
尚硅谷jvm课件整理ppt
JVM图解-JVM指令-JVM原型图.rar
如果不声明volatile,变量装载到本地变量 中,或者cpu cache中,多线程下很容易导 致状态不⼀一致。 • 声明了volatile,每次访问的都是主存中的数 据,⼀一致性能提升,但是还是不可靠的。 • volatile字段的访问...
46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT...
深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm
从JVM内存管理的角度谈谈静态方法和静态属性
从 0 开始带你成为JVM实战高手
主要是JVM内存分配及简单的JVM性能调优
JVM面试资料。 JVM结构:类加载器,执行引擎,本地方法接口,本地内存结构; 四大垃圾回收算法:复制算法、标记-清除算法、标记-整理算法、分代收集算法 七大垃圾回收器:Serial、Serial Old、ParNew、CMS、Parallel...
动态编译字符串成java,并且添加class到jvm
jvm 详细介绍,了解jvm各个组成部分和功能
Introduction to JVM Languages English | 2017 | ISBN-10: 178712794X | 390 pages | PDF/MOBI/EPUB (conv) | 6.42 Mb Key Features This guide provides in-depth coverage of the Java Virtual Machine and its ...
首先讲述JVM的基本概念和原理、架构等。最后一HelloApp讲述JVM的工作过程