1、classLoader
java通过类加载机制(classLoader)把class加载到JVM内存中。动态加载:实际使用时才会去加载相关类信息。
2、java提供的classLoader
BootstrapClassLoader、ExtClassLoader、AppClassLoader
Bootstrap ClassLoader不继承自ClassLoader,因为它不是一个普通的Java类,底层由C++编写,已嵌入到了JVM内核当中,当JVM启动后,Bootstrap ClassLoader也随着启动,负责加载完核心类库后,并构造Extension ClassLoader和App ClassLoader类加载器。
//-- bootstrap classLoader urls. URL[] urls = Launcher.getBootstrapClassPath().getURLs(); for(URL url : urls){ System.out.println(url); } //----ext class loader urls. URLClassLoader extClassLoader = (URLClassLoader)ClassLoader.getSystemClassLoader().getParent(); System.out.println("ext class loader:"); System.out.println(extClassLoader); urls = extClassLoader.getURLs(); for(URL url : urls){ System.out.println(url); } //app class loader urls. URLClassLoader appClassLoader = (URLClassLoader)ClassLoader.getSystemClassLoader(); System.out.println("appclass loader :"+appClassLoader); urls = appClassLoader.getURLs(); for(URL url : urls){ System.out.println(url); }
bootstrap class loader file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/resources.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/rt.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/sunrsasign.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/jsse.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/jce.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/charsets.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/modules/jdk.boot.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/classes ext class loader: sun.misc.Launcher$ExtClassLoader@42e816 file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/ext/dnsns.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/ext/localedata.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/ext/sunjce_provider.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/ext/sunmscapi.jar file:/C:/Program%20Files/Java/jdk1.6.0_38/jre/lib/ext/sunpkcs11.jar appclass loader :sun.misc.Launcher$AppClassLoader@addbf1 file:/E:/work_icu_basic/icuWsTest/bin/
3、classLoader 加载原理
使用双亲委托模型
4、自定义classLoader
相关推荐
Java 虚拟机中ClassLoader 相关简介 双亲委托机制 Android 中ClassLoader 简介
ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的
破解java加密的ClassLoader.java,在classloader植入破解代码
自定义classloader的使用
Java ClassLoader定制实例
java classloader classpath 张孝祥
理解Java ClassLoader机制
用于验证理解Android中Classloader加载类机制的程序demo,从中可以对比DexClassLoader和PathClassLoader的区别联系。
ClassLoader类加载机制和原理详解
内容简介: ClassLoader体系结构 类装载器在JVM中并不是唯一的,JVM自带了三个装载器,用户也可以根据自己的需求自定义新的装载器,这些装载器的体系结构可以看作是树状结构,如图1所示:
关于J2EE服务器的ClassLoader的原理,该文档清晰了揭示了jvm装载类的顺序,同时用户可以自定义修改classLoader的配置 通过该文档,可以加深对Java虚拟机的理解
重温java之classloader体系结构(含hotswap) 启动类加载器 扩展类加载器 系统类加载器
【图解版】深入分析ClassLoader类加载工作机制,从原理到JVM的装载过程,详情分析了ClassLoader加载类以及自定义类加载器的过程,不可用于商业用途,如有版权问题,请联系删除!
深入了解Java_ClassLoader,Bytecde.pdf
一个开源的Cplusplus类加载器,基于它实现了一个简单的例子,见我写的classloader的文章。
classloader 加密解密应用程序 ,反编译class
JVM内存模型,类加载模式工作机制详细,内存屏障,类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三...
Classloader
ClassLoader类加载器讲解,理解JAVA类加载机制