Java虚拟机学习笔记
程序人生dc
编程时要保持这种心态:就好象将来要维护你这些代码的人是一位残暴的精神病患者,而且他知道你住在哪。
展开
-
java虚拟机内存区域的划分以及作用简介
一、运行时数据区 什么叫运行时数据区呢,看下图就知道了,今天的重点就围绕这张图讲。 1、程序计数器(寄存器) 当前线程所执行的字节码行号指示器 字节码解释器工作依赖计数器控制完成 通过执行线程行号记录,让线程轮流切换各条线程之间计数器...原创 2018-10-04 20:38:49 · 434 阅读 · 0 评论 -
Java虚拟机方法区介绍
JAVA虚拟机方法区介绍1、JVM内存模型 大多数JVM将内存分配为Method Area(方法区)、Heap(堆)、ProgramCounter Register(程序计数器)、JAVA MethodStack(JAVA方法栈)、Native MethodStack(本地方法栈)。1.1 Method Area 线程共享,存储已经被虚拟机加载的类信息、常量、静态变量、即...原创 2018-10-04 21:29:56 · 988 阅读 · 0 评论 -
Java虚拟机判断对象存活的两种方案:引用计数法与可达性分析算法
java堆和方法区主要存放各种类型的对象(方法区中也存储一些静态变量和全局常量等信息),那么我们在使用GC对其进行回收的时候首先要考虑的就是如何判断一个对象是否应该被回收。也就是要判断一个对象是否还有其他的引用或关联使得这个对象处于存活的状态。我们需要将不在存活状态的所有对象标记出,以便于GC进行回收。判断对象是否存活有两种比较常见的方法:引用计数法与可达性分析算法。引用计数法引用计数...原创 2018-10-05 20:03:19 · 481 阅读 · 0 评论 -
Java中常用垃圾回收算法
Java中常用的垃圾收集算法:(1).标记-清除算法:最基础的垃圾收集算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成之后统一回收掉所有被标记的对象。标记-清除算法的缺点有两个:首先,效率问题,标记和清除效率都不高。其次,标记清除之后会产生大量的不连续的内存碎片,空间碎片太多会导致当程序需要为较大对象分配内存时无法找到足够的连续内存而不得不提前触发另一...原创 2018-10-05 22:30:32 · 889 阅读 · 0 评论