JVM
文章平均质量分 85
MECHASE
这个作者很懒,什么都没留下…
展开
-
Java运行时数据区域
一、程序计数器(Program Counter Register) 一块较小的内存空间,可看做是当前线程所执行的字节码的行号指示器。在java多线程中,每条线程都有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储。(线程私有的内存)如果线程执行的是java方法,则程序计数器记录的是正在执行的虚拟机字节码指令的地址;如果线程执行的是Native方法,这个计数器值则为空。该内存区原创 2017-05-21 13:18:28 · 524 阅读 · 0 评论 -
垃圾收集与内存分配
一、如何判断对象可以被回收? 引用计数算法:即当对象的引用为0时,该对象可以被回收。缺陷是无法解决循环引用问题。根搜索算法:通过一些列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,即证明此对象是不可用的。GC Roots对象: 虚拟机栈(栈帧中的本地变量表)中的引用的对象。 方法区中的原创 2017-05-21 15:55:23 · 323 阅读 · 0 评论 -
java内存模型
一、概述 java虚拟机规范中试图定义一种java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到一致的并发效果。在此之前,主流程序语言(C/C++等)直接使用物理硬件(操作系统的内存模型),但会因为平台的不同而发生并发访问错误。 JDK1.5(实现了JSR-133)发布后,java的内存模型已经成熟和完善原创 2017-05-22 10:40:34 · 448 阅读 · 0 评论 -
Class类文件结构
一、概述 定义:Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑排列在Class文件之中,中间没有添加任何分隔符。Class文件格式采用一种类似于C语言结构体的伪结构来存储,这种伪结构中之余两种数据类型:无符号数和表(表是由多个无符号数或其他表作为数据项构成的符合数据类型)。 二、魔数与Class文件的版本 魔数:Class文件头4个字节,用于确定这个文件是否原创 2017-05-22 11:53:52 · 326 阅读 · 0 评论 -
虚拟机类加载机制
一、类加载的时机 类从被加载到虚拟机内存中开始,到 卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中验证、准备和解析三个部分统称为连接。 二、类加载器 定义:虚拟机设计团队把类加载阶段中的”通过一个类的全限定名来获取描述此类的二进制字节流“这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现原创 2017-05-22 13:37:28 · 333 阅读 · 0 评论