类加载器: 类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 j.....
分类:
编程语言 时间:
2015-05-26 00:10:23
阅读次数:
197
来源:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/类加载器(class loader)是 Java?中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的...
分类:
编程语言 时间:
2015-05-22 23:46:28
阅读次数:
186
1、java 使用Class对象来执行其RTTI。java 中每个类在编译后都会对应产生一个Class对象(更恰当地说是被保存在一个同名的.class文件中),甚至void和基本类型也都对应一个class对象。jvm使用类加载器来将所需要的类动态的加载到JVM。所有的都是在第一次使用时动态加载到JV...
分类:
编程语言 时间:
2015-05-22 11:20:11
阅读次数:
151
类加载所有类加载器,都是ClassLoader的子类。类加载器永远以.class运行的目录为准。读取classpath根目录下的文件有以下几种方式:1 在Java项目中可以通过以下方式获取classspath下的文件:public void abc(){ //每一种读取方法,使用某个类...
分类:
其他好文 时间:
2015-05-22 11:18:22
阅读次数:
148
1. 类加载器简介类加载器负责加载所有的类,系统为所有被载入内存中的类生成一个java.lang.Class实例。一旦一个类被载入JVM中,同一个类就不会被再次载入了。现在的问题是怎么样才算“同一个类”?正如一个对象有一个唯一的标识一样,一个载入JVM的类也有一个唯一的标识。同理,载入JVM的类也有...
分类:
编程语言 时间:
2015-05-19 20:51:42
阅读次数:
117
内容:对于任意的一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类空间。只要加载类的类加载器不同的话,那么这个两个类就必定不相等(包括equals()方法,instanceof()方法)。一个简单的例子说明:注意getResourceAsStream的应用:Class.getResourceAsStream(String
pat...
分类:
编程语言 时间:
2015-05-18 16:47:06
阅读次数:
129
自定义类加载器+加密+解密 的这个程序需要的实验步骤如下,所用的类如下:ClassLoaderTest 类:用来做“解密实验”的类,将Test类的加密后的.class文件加载内存,并解密后,用ClassLoader.defineClass()得到Class对象,利用反射使用Test类MyClas.....
分类:
其他好文 时间:
2015-05-16 20:07:50
阅读次数:
167
总结下类加载机制相关的知识图谱。
类加载机制,包括三大步骤。
1.装载load 。目的是生成类加载实例id
2.链接 ,检测字节码格式以及内部调用匹配情况。静态变量初始化
3.初始化。主要是类加载器加载类的顺序。
对于自定义类加载,开发者完成自己的实现。
bootstrap负责rt.jar类加载,rt是java规范定义的接口与实现。
extension扩展jre中的jar。
s...
分类:
其他好文 时间:
2015-05-15 17:43:39
阅读次数:
168
每个class文件都对应唯一一个类或接口的定义信息,但类或接口不一定定义在文件里(类或接口通过类加载器直接生成)。
每个class文件都是由8字节为单位的字节流组成,所有16,32,64位长度的数据将被构造成2,4,8个8字节单位来表示。多字节数据项总是按照Big-Endian的顺序进行存储。用项item来描述类结构格式的内容,class文件中,各项按照严格顺序连续存放的,之间无任何填充或对...
分类:
其他好文 时间:
2015-05-13 16:55:18
阅读次数:
108