1、JDK 默认提供了如下三种ClassLoader:
BootStrap ClassLoader:称为启动类加载器,C++实现的,是Java类加载层次中最顶层的类加载器(JVM启动后初始化的),负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等;ExtensionClassLoader:称为扩展类加载器,负责加载Java的扩展类库,默认...
分类:
其他好文 时间:
2015-08-11 18:53:30
阅读次数:
218
一、类加载器原理
JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class
对象,作为方法区类数据的访问入口。
二、类缓存
标准的Java SE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过,JVM垃圾收集器可以回收这些Class过象。
三...
分类:
其他好文 时间:
2015-07-17 19:00:15
阅读次数:
124
类加载所有类加载器,都是ClassLoader的子类。类加载器永远以.class运行的目录为准。读取classpath根目录下的文件有以下几种方式:1 在Java项目中可以通过以下方式获取classspath下的文件:public void abc(){ //每一种读取方法,使用某个类...
分类:
其他好文 时间:
2015-05-22 11:18:22
阅读次数:
148
自定义类加载器+加密+解密 的这个程序需要的实验步骤如下,所用的类如下:ClassLoaderTest 类:用来做“解密实验”的类,将Test类的加密后的.class文件加载内存,并解密后,用ClassLoader.defineClass()得到Class对象,利用反射使用Test类MyClas.....
分类:
其他好文 时间:
2015-05-16 20:07:50
阅读次数:
167
java类加载器主要分为如下几种:jvm提供的类加载器根类加载器:底层实现,主要加载java核心类库(如:java.lang.*)扩展类加载器:使用java代码实现,主要加载如:jre/lib/ext/ 下的扩展类库。(父类加载器为根类加载器)系统类加载器(应用类加载器):使用java代码实现,加载...
分类:
编程语言 时间:
2015-04-05 06:40:21
阅读次数:
202
听上去很高端,其实一般自定义类加载器不需要用户去实现解析的过程,只要负责实现获取类对应的.class字节流部分就ok了,摘录深入理解Java虚拟机的一段话虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何...
分类:
编程语言 时间:
2015-03-08 21:22:11
阅读次数:
154
跟其他主流的Java Web服务器一样,Tomcat也拥有不同的自定义类加载器,达到对各种资源库的控制。一般来说,Java Web服务器需要解决以下四个问题:
① 同一个Web服务器里,各个Web项目之间各自使用的Java类库要互相隔离。
② 同一个Web服务器里,各个Web项目之间可以提供共享的Java类库。
③ 服务器为了不受Web项目的影响,应该使服务器的类库与应用程序的类...
分类:
其他好文 时间:
2014-12-14 21:20:04
阅读次数:
217
代码如下:
package classloader;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.I...
分类:
其他好文 时间:
2014-11-26 11:23:00
阅读次数:
142
1 //示例: 2 package com.csair.soc; 3 4 import java.io.IOException; 5 import java.io.InputStream; 6 7 public class MyClassLoader1 extends ClassLoade...
分类:
编程语言 时间:
2014-11-24 13:33:36
阅读次数:
342