JVM
一只野生饭卡丘
这个作者很懒,什么都没留下…
展开
-
JVM——内存模型(三):堆与方法区
前两篇博客我们认识了程序计数器、虚拟机栈与本地方法栈。今天我们来一起认识一下堆与方法区。关于堆内存,我之前有写过一篇关于堆外内存的博客,里面有详细介绍堆内存。这里为了观看方便,就直接把关于堆内内存的部分拿过来咯。(想了解堆内内存与堆外内存的伙伴们,可以参考:Java——堆外内存详解。)1.Java堆内存那什么东西是堆内存呢?我们来看看官方的说法。“Java 虚拟机具有一个堆(Hea...原创 2018-12-12 15:40:46 · 661 阅读 · 0 评论 -
JVM——引用计数算法与可达性分析算法
前几篇博客我们一起认识了JVM的内存模型(程序计数器、虚拟机栈、本地方法栈、方法区与堆),了解了它们的内存结构与分配,同时也略带提到关于内存的回收。JVM——内存模型(一):程序计数器JVM——内存模型(二):虚拟机栈与本地方法栈JVM——内存模型(三):堆与方法区有内存分配就肯定有内存回收,这个大家都知道,可哪些东西需要回收?什么时候进行回收呢?又怎么样回收呢?之前我们介绍了...原创 2018-12-12 23:56:14 · 3326 阅读 · 2 评论 -
JVM——从简单Demo分析Java 四种引用类型
有内存分配自然也就有内存回收,是否回收一个对象就需要判断它是否符合回收条件。判断对象是否存活主要也就是引用计数法以及可达性分析算法。这两种算法可以参考:JVM——引用计数算法与可达性分析算法但是无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判定对象是否存活都与“引用”有关。在JDK1.2以前,Java中的引用的定义很传统:如果referenc...原创 2018-12-13 01:05:12 · 585 阅读 · 0 评论 -
JVM——Client模式虚拟机与server模式虚拟机的区别。
目前java虚拟机有两种模式,分别为Client模式和Server模式。这两种模式可以使用-Client和-Server参数可以进行设置。如果没有设置的话,怎么办呢?那当然难不倒虚拟机,以它的智商当然会根据当前计算机系统环境自动选择运行模式。那它怎么检测呢?当不指定运行模式参数时,虚拟机启动检测主机是否为服务器,如果是,则以Server模式启动,否则以Client模式启动(J2SE5.0检...原创 2018-12-19 16:38:38 · 3863 阅读 · 0 评论 -
JVM——Minor GC、Major GC和Full GC之间的区别
1.Minor GC我们知道,新生代可以分为Eden和Survivor区域,而从新生代代空间(包括 Eden 和 Survivor 区域)回收内存则被称为 Minor GC。可以参考JVM——四种垃圾收集算法详解中的标记复制算法。2.Major GC vs Full GCMajor GC 是清理老年代。但是由于很多MojorGC 是由MinorGC 触发的,所以有时候很难将MajorG...原创 2018-12-19 17:48:50 · 1626 阅读 · 0 评论 -
JVM——四种垃圾收集算法详解
之前几篇博客介绍了内存模型以及判断对象是否存活的两种算法,当一个对象死亡的时候,就要被当做垃圾回收。那么今天我们就来了解一下垃圾收集算法,看看都是怎么将这些死亡的对象给回收了去。目前主要的垃圾收集算法有四种,分别是标记-清除算法、复制算法、标记整理算法以及分代收集算法。下面我们就来看看这四种算法都是啥。1.标记-清除算法标记-清除算法是最基础的收集算法。从它的名字我们可以看出来,这个算...原创 2018-12-14 00:49:24 · 817 阅读 · 0 评论 -
JVM——堆外内存详解
内存是好东西,我们常听堆内存,很多人却不知道还有一个堆外内存。那这两个都是个啥玩意呢?且让本帅博主今天给你好好说道说道。一、堆内内存那什么东西是堆内存呢?我们来看看官方的说法。“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。” 也就是说,平常我们老遇见的那位,JVM启动时分配的,就叫作堆内存...原创 2018-12-04 23:22:29 · 7924 阅读 · 3 评论 -
JVM——内存模型(一):程序计数器
拥有最高权利却又从事着平民百姓的基础工作是一种什么样的体验?对于从事C、C++的程序员来说,这种感觉他们实在是熟悉得不能再熟悉了。在内存管理的领域,不论是对象的生命的开始,还是终结,所有对象的命运都被他们掌握在手里。他们既是掌管最高权利的皇帝,也是从事基础工作的平民。那么Java程序员又是什么样的?对于Java程序员来说,他们的体验在这一方面也许就没有C、C++他们的那么丰富了。为什么...原创 2018-12-11 22:42:08 · 1390 阅读 · 5 评论 -
JVM——内存模型(二):虚拟机栈与本地方法栈
本篇文章将继续认识Java虚拟机中的内存模型,今天要认识的是我们常说的"栈”。栈其实也分两种,一种是虚拟机栈,一种是本地方法栈。而我们平常说的最多的,就是虚拟机栈。接下来就让我们走进这两个栈,看看他们是个啥。1.虚拟机栈虚拟机栈,即Java Virtual Machine Stacks,描述的是Java方法执行的内存模型。每个方法在执行的同时都会创建一个栈帧,即Stack Fram...原创 2018-12-12 00:58:08 · 2010 阅读 · 2 评论