码迷,mamicode.com
首页 > 其他好文 > 详细

类加载器

时间:2021-01-07 12:03:27      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:自定义   not   class   实现   bsp   exception   pat   public   throws   

一、类加载器的类型

1、Bootstrap类加载器

  最顶层的类加载器,它是由C++编写,主要负责JVM的核心类库的加载,例如java.lang包。

2、扩展类加载器

  第二层类加载器,父加载器当然就是bootstrap,主要是加载jre\lb\ext子目录里面的类库。

3、系统类加载器

  第三层类加载,父加载器是扩展类加载器,主要负责加载classpath下的类库。

4、自定义类加载器

  父加载器默认是系统类加载器。而需要实现自己的类加载器,需要继承ClassLoad抽象类。

 1 public class MyClassLoader extends ClassLoader{    
 2 @Override    
 3 protected Class<?> findClass(String name) throws ClassNotFoundException{   
 4  //从磁盘中读取class的二进制数据        
 5 byte[] classBytes = this.readClassBytes(name);        
 6 //如果数据为null则抛出ClassNotFoundException异常        
 7 if (null == classBytes || classBytes.length == 0) {           
 8  throw new ClassNotFoundException();       
 9 }       
10  //调用defineClass方法定义class        
11 return this.defineClass(name, classBytes, 0, classBytes.length);    
12 }   
13  

 

类加载器

标签:自定义   not   class   实现   bsp   exception   pat   public   throws   

原文地址:https://www.cnblogs.com/huangwenhao1024/p/14232301.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!