JVM Knowledges-Class Loader

JVM的设计团队将类加载阶段的“通过一个类的全限定名获取此类的二进制字节流”这个动作放到JVM外部去实现了,以便用户自己去决定如何去获取所需要的类。 类的唯一性由类本身以及加载它的类加载器确定。即,比较两个类是否相等,那么这两个类是由同一个类加载器加载的前提下才有意义。

2013-11-02 23:47:59

阅读数:448

评论数:0

JVM Knowledges-垃圾回收算法

本文参考自周志明的《深入理解java虚拟机》,这本书写的非常好!非常推荐! 注意:各个平台的算法实现不尽相同。 1.Mark-Sweep算法(标记清除) 步骤: 首先标示需要清除的对象。 标记完成之后,统一回收掉被标记的对象。 缺点: 效率问题:标...

2013-11-02 00:13:00

阅读数:451

评论数:0

JVM Knowledges-运行时数据区

Runtime Data Area   方法区 JavaHeap JavaStack 程序计数器 本地方法区 存储数据 用于存储已被虚拟机加载的类信息,常量,静态变量,即使编译器编译后的代码等数据 所有的对象实例以及数组都要在堆上分配 虚拟机栈描述的是Java...

2013-10-29 23:08:17

阅读数:446

评论数:0

JVM Knowledges-类加载器

JVM的设计团队将类加载阶段的“通过一个类的全限定名获取此类的二进制字节流”这个动作放到JVM外部去实现了,以便用户自己去决定如何去获取所需要的类。 类的唯一性由类本身以及加载它的类加载器确定。即,比较两个类是否相等,那么这两个类是由同一个类加载器加载的前提下才有意义。

2013-10-28 22:20:31

阅读数:360

评论数:0

JVM Knowledges-类的 <clinit> 与 对象的<init> 对比

2013-10-27 19:46:46

阅读数:778

评论数:0

JVM Knowledges-类型的初始化阶段

本文参考了周志明的《深入理解java虚拟机》,写的非常好! 类型初始化的时机-主动使用: 使用new实例化一个对象的时候。调用一个类的静态方法。调用一个类的静态字段(非编译期已知的常量)。使用发射调用其相应方法的时候。带有main方法的类。调用一个类的子类,父类还没有初始化。 不会引...

2013-10-24 23:33:52

阅读数:519

评论数:0

JVM Knowledges-引用分类

本文参考了周志明的《深入理解Java虚拟机》,书写的非常好! 预先需要知道的 判定对象的存活与reference有关。 (狭隘的)引用到得对象不会被垃圾回收。 问题: 其实有一些对象我们希望当内存空间还足够时,则保留。当内存在进行垃圾收集以后还很紧张的时候,可以抛弃这些对...

2013-10-23 21:04:25

阅读数:385

评论数:0

JVM Knowledges-类型的生命周期

JVM中,类型的生命周期如下:

2013-10-13 23:34:47

阅读数:364

评论数:0

JVM Knowleadge-垃圾回收GC Roots Tracing

本文参考了周志明的《深入理解Java虚拟机:JVM高级特性与最佳实践》,这本书写的非常好!极力推荐!》 JVM中对内存进行回收时,需要判断对象是否仍在使用中,可以通过GC Roots Tracing辨别。 定义: 通过一系列名为”GCRoots”的对象作为起始点,从这个节点向...

2013-10-07 22:04:35

阅读数:7405

评论数:3

JVM Knowleadge-字节码文件的构造

本文参考了周志明的《深入理解Java虚拟机:JVM高级特性与最佳实践》,这本书写的非常好!极力推荐! 字节码平台无关性: Java的一次编译到处运行即要求所载入的和执行同一种平台无关的字节码。各个平台的虚拟机与所有平台都统一采用字节码(ByteCode)存储格式。 有很多语言可以在JVM上...

2013-10-06 23:20:53

阅读数:860

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭