class文件简介及加载
Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:
class字节码文件是根据JVM虚拟机规范中规定的...
分类:
编程语言 时间:
2016-06-24 16:07:10
阅读次数:
922
一、什么是类的加载
类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。
类加载器并不需要等到某个类被“首...
分类:
编程语言 时间:
2016-06-24 15:40:46
阅读次数:
213
类的加载: 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化这三个步骤来实现对这个类进行初始化。 加载: 就是指将class文件加载进入内存,并为之创建一个Class对象 任何类被使用时,系统都会创建一个Class对象 连接: 验证: 是否有正确的内部结构,并且和其他 ...
分类:
其他好文 时间:
2016-06-22 22:04:14
阅读次数:
169
类的加载过程指通过一个类的全限定名来获取描述此类的二进制字节流,并将其转化为方法区的数据结构,进而生成一个java.lang.Class对象作为方法区这个类各种数据访问的入口。这个过程通过Java中的类加载器(ClassLoader)来完成。 类装载器是用来把类(class)装载进JVM的。JVM规 ...
分类:
编程语言 时间:
2016-06-13 22:12:31
阅读次数:
369
JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制
JAVA之旅,一路有你,加油!
一.静态同步函数的锁是class对象
我们在上节验证了同步函数的锁是this,但是对于静态同步函数,你又知道多少呢?
我们做一个这样的小实验,我们给show方法加上static关键字去修饰
private stat...
分类:
编程语言 时间:
2016-06-12 03:19:39
阅读次数:
244
转自http://www.iteye.com/topic/1123081
Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数、属性和方法等。Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Cl...
分类:
编程语言 时间:
2016-06-12 02:52:34
阅读次数:
167
用Class对象找到成员变量,方法和构造器 ...
分类:
其他好文 时间:
2016-06-10 20:24:10
阅读次数:
145
类的加载机制 1.类加载 2.连接 3.初始化 反射 java程序中的对象在运行时会出现两种类型:编译时类型 运行时类型 使用反射查看类信息 1.使用Class.forName() Class c=Class.forName(“全限定类名”);2.调用class属性来获得该类对象的class对象 C ...
分类:
编程语言 时间:
2016-06-06 00:37:39
阅读次数:
142
java反射机制:
1.指的是可以于运行时加载,探知和使用编译期间完全未知的类.
2.程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性;
3.加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,...
分类:
其他好文 时间:
2016-06-02 14:07:19
阅读次数:
215
java反射机制:1.指的是可以于运行时加载,探知和使用编译期间完全未知的类.2.程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性;3.加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像...
分类:
编程语言 时间:
2016-06-01 19:55:40
阅读次数:
240