随笔分类 - 虚拟机
虚拟机学习笔记
摘要:重点关注几个问题:-对象已死吗?采用引用计数法(不能解决相互循环引用问题)或可达性分析法。引用计数法:计算对象的引用数,计数为0时对象被回收。可达性分析:通过一系列的"GC Roots"的对象(如栈中引用的对象、方法区中类静态属性引用的对象、常量引用的对象)作为起始向下搜索,搜索所走过的路径称为引用...
阅读全文
摘要:对象在内存中的布局可以分为3块区域:对象头(Header):一部分是用来存储对象自身运行时的数据(如哈希码,GC分代年龄)。这部分被设置为非固定的数据结构,即根据对象的状态对象头不同字段所占的大小不一样,但总大小都是32bit或64bit。另一部分是类型指针,即对象指向它的类元数据的指针,确定对象是...
阅读全文
摘要:对象的创建关注以下几个问题:1、为创建的对象分配内存空间有两种方式:指针碰撞:即规整的划分空间,内存空间中用过的放一边,没用过的放另外一边。需要分配时,指针向空闲空间那边挪动一段与对象大小相等的距离。空闲列表:已用和未用空间相互交错,虚拟机需要维护一个列表,记录哪些内存是可以用的,在分配的时候找到一...
阅读全文
摘要:Java虚拟机所管理的内存会包括以下几个运行时数据区域: 程序计数器:是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的事Native方法,这个计数器值则为空。 Java虚...
阅读全文

浙公网安备 33010602011771号