jvm
文章平均质量分 83
IT_tangh
这个作者很懒,什么都没留下…
展开
-
JVM探秘之运行时数据区
(图来自《深入理解java虚拟机》)1、程序计数器(Program Counter Register) 可以比作当前线程所执行的字节码的行号指示器。 每条线程都需要有一个独立的程序计数器,线程私有的内存。 计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值就是空的。 2、Java虚拟机栈(Java Virtual Machine Stacks) 线程私有,原创 2017-04-19 17:57:00 · 235 阅读 · 0 评论 -
JVM探秘之GC
GC的三个问题(what,when,how),带着问题去思考。哪些内存需要回收? 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生死,所需要的内存大小基本是在编译期间确定下来的,一旦线程或方法结束,内存也就跟着回收了,所以这几个区域不需要过多的考虑垃圾回收问题。但是java堆和方法区只有在程序运行时才能确切的知道需要哪些对象需要多少内存,这部分的内存分配和回收都是动态的,所以这部分内存才是需要垃原创 2017-04-19 18:20:13 · 381 阅读 · 0 评论 -
JVM进阶之GC(一)内存分代
前言 我们知道,java语言与c++语言最大的不同点就是在垃圾回收的处理上,java有了专门的垃圾自动回收机制,而c++需要手动回收内存垃圾。既然java的垃圾回收这么NB,那今天就来整理JVM的垃圾回收这块内容吧。 首先得明确几点目的: 1. 为什么需要了解JVM的垃圾回收,让JVM自己去处理不就好了? 2. 是回收什么东西? 3. 是什么时候回收的? 4. JVM是怎么进行垃圾回收原创 2018-01-21 22:43:09 · 524 阅读 · 0 评论 -
JVM进阶之GC(二)对象存活判断算法
上一篇简单的说明了对象在JVM中的内存分代策略,此文继续来为GC打基础,说说什么样的对象需要被GC,即对象是否存活判定算法。 判定对象存活算法 如何判断对象沦为了垃圾也是门技术。 引用计数法 引用计数法就是给对象加个引用计数器,每有一个地方引用到它时,这个引用计数器就加1。当引用失效的时候,计数器的值就减1,也就是说根据引用计数器的值来判断对象是否存活,若值是0,那么该对象就不再被原创 2018-01-22 22:20:35 · 883 阅读 · 0 评论 -
JVM进阶之GC(三)垃圾回收算法
上篇我们讨论了怎么判断对象是否存活,判了“死刑”的对象就会在垃圾回收中被回收掉。那么本文将说说JVM是如何回收垃圾的。 垃圾回收算法 标记-清除算法 算法的过程就如同算法的名字,分为标记和清除两个阶段:首先标记出所有要回收的对象,然后对标记的对象统一清除。算法很简单,再看下逻辑图: 内存空间经过标记清除算法回收的过程一目了然,从图中也能看出这种算法的不足,即标记清除后会产生大量原创 2018-01-24 23:16:28 · 396 阅读 · 0 评论 -
JVM进阶之运行时数据区
前言 最近在看重温JVM相关的知识点,但总感觉看书很枯燥乏味,看别人的博客知识又显得零碎,知识体系不够系统,所以有必要把所见所闻所学的点,好好地梳理成文,加强自己理解程度的同时,挖掘自身的盲点。好了,鸡血不宜多,让我们开始JVM的新篇章。 话说平时开发中的我们有曾想过写过的代码运行在哪儿,比如在类中声明了static类型的变量,在方法中new了一个对象等等……如果这些都不了解,我只能说原创 2018-01-19 23:08:49 · 288 阅读 · 0 评论 -
JVM进阶之GC(四)垃圾收集器
上一篇讲了下垃圾回收算法,今天就来说说垃圾回收算法的具体实现吧–垃圾收集器(本文讨论的是JDK1.7版本的HotSpot虚拟机)。 垃圾收集器 HotSpot虚拟机提供的收集器如下图: 新生代的垃圾收集器有:Serial、ParNew、Parallel Scavenge; 老年代的垃圾收集器有:CMS、Serial Old、Parallel Old G1收集器因运用的还不是很广泛...原创 2018-02-05 22:57:35 · 397 阅读 · 0 评论 -
JVM进阶之GC(五)对象的内存分配和回收策略
简单回顾下JVM内存结构和垃圾回收器。 JVM内存结构 JVM内存主要由新生代、老年代、永久代构成。 新生代(Young Generation):大多数对象在新生代中被创建,其中很多对象的生命周期很短。每次新生代的垃圾回收(又称Minor GC)后只有少量对象存活,所以选用复制算法,只需要少量的复制成本就可以完成回收。 新生代内又分三个区:一个Eden区,两个Survivor区(一般而...原创 2018-05-21 17:02:42 · 2164 阅读 · 1 评论