类的加载:
指把类的.class文件中的二进制数据读入内存中,把它存放在运行时数据区的方法区内,然后 在在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。
类加载器并不需要等到某个类被告“首次主动使用”时再加载它,虚拟机允许类加载器在预料某个类将要调用前预前加载它。如果预先加载过程中遇到.class文件缺失或者存在错误,只有调用时才会抛出错误,如果未被调用,则不会报错。
java可以从多种途径加载类的二进制数据
(1)网络下载的.class
(2)zip,jar包
(3)java源文件编译后的.class
类的加载器可分为两种:
(1)Jvm自带的三类加载器
(2)用户户自定义的加载器
JVM自带的三个加载器
(1)根类加载器:该加载器没有父类,负责加载核心类库。如java.lang.*。它具体加载的jar包,请见System.getProperties()中的sun.boot.library.path=e:\jdk1.5.0\jre\bin
(2) 扩展类加载器:它的父加载器为根类加载器。所加载的内容见系统属性:java.ext.dirs或者从JDK的安装上当的jre\lib\ext目录和扩展目录下加载类库
(3) 系统类加载器:也称应用类加载器.它从环境变量classpath或者系统属性java.class.path所指定的目录加载类。它是用户自定义的类加载器的默认父类加载器。系统类加载器是纯java类,是java.lang.ClassLoader的子类.
执行javac Dog.java文件,生成class文件。然后使用javap -verbose Dog反编译出class代码。
分享到:
相关推荐
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类加载机制