美文网首页
jvm内存模型的理解

jvm内存模型的理解

作者: VERF | 来源:发表于2019-01-16 16:35 被阅读0次

jvm内存模型的理解

Java虚拟机中根据是否对线程共享将内存分为了两个部分。 可知线程是操作系统调度的基本单位。 故而任何一个操作都必包含线程私有和线程共享两部分。

线程私有:

线程私有包括两栈一器。 首先计算器,由于线程具有并发执行的能力,并且任务只在线程中执行,故而每个线程都有一个程序计数器,而且放在线程的私有空间中。负责对指令的有序执行。再说虚拟机栈,虚拟机栈直接面向Java虚拟机,处理的是Java层的方法调用逻辑,栈中的每个元素称为一个栈帧,每个栈帧包含调用方法的参数表,临时变量,方法返回的内存地址等诸多信息。 其次是本地方法栈,与虚拟机栈类似,负责的是native层本地方法的调用管理。

线程共享:

Java堆,Java堆中放置的是Java类这一个层次的变量对象,因为方法层次的变量都是存在虚拟机栈中,而类层次的变量存在被多个线程访问的可能性,所以需要放在共享区中,也就是Java堆。 方法区,方法区放置的是class这一层次的对象,如class类,此时还没有生成真正意义上的Java类,可以说是一个变成品,是classloader加载class之后的一个存放地点,此外,与class相关而与具体实例无关的静态变量,静态常量也会放在方法区之中。

执行引擎专门负责字节码的读取和处理。

GC垃圾回收器的理解

垃圾回收是JVM自动进行的行为,进行垃圾回收需要明确三个问题。

回收谁? 什么时候进行回收? 怎么回收?

第一个问题。解决回收谁的问题,一般有两种,其一是引用计数,每多一个引用,引用数+1,少一个就-1,当为0时,代表没有被使用,可以回收。另一种是可达性分析,即从GCRoot进行遍历,没有遍历到的说明没有被使用。可以回收。

第二个问题,解决什么时候回收的问题。这个问题一般是在空间不够的时候,对主线程进行暂停,然后进行回收。或者未满时一些轻量的回收。后面还会谈到。

第三个问题,解决如何回收的问题。 会使用不同的回收算法。
1.标记清除算法,遍历标记,定点清除。但是会产生内存碎片,适用于存活率比较低的情况。
2.复制算法,遍历,将存活的对象统一复制到新内存区域,原来的区域全部回收。 适用于存活率低的情况。
3.标记整理算法,遍历,将存活的对象统一向一端移动,将可用区域连成片,适用于存活率高的情况,可以避免内存碎片化。
4.分代收集法。分代收集法是对上面几种算法的有机结合,扬长避短。根据其生命周期长短,分别进入不同区域,不同区域又对应不同算法。
其分为新生代,老年代和永久代。新生代,老年代的大小比例约为1:9, 新生代存放。

相关文章

  • JVM

    栈容量由-Xss指定深入理解JVM—JVM内存模型 JVM内存模型和JVM参数的关系

  • JVM内存模型(jvm 入门篇)

    概述 jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,...

  • JVM之内存模型以及各种溢出异常

    近期学习了JVM,借此整理一下JVM有关的内存模型和各种内存溢出。 运行时数据区域 要理解Java的内存模型,作者...

  • 深入理解java虚拟机之jvm内存模型

    深入理解JVM—JVM内存模型 java的内存模型包括:本地方法区,java堆,Java虚拟机栈,本地方法栈,程序...

  • JVM内存模型

    纯个人理解。 说到jvm,首先要说的就是jvm的内存模型。 jvm内存结构主要分为以下几块。 1、程序计数器,这是...

  • [Java多线程编程之八] Java内存模型

    一、Java内存模型 == JVM内存模型?   很多人都会认为Java内存模型就是JVM内存模型,但实际上是错的...

  • 如何从编程的本质理解JVM内存模型

    如何从编程的本质理解JVM内存模型 一般聊JVM内存模型都是把图截出来,然后对着图,解释上面堆、栈之类的概念。这篇...

  • JVM内存结构和Java内存模型

    最近看到两个比较容易混淆的概念:JVM内存结构和Java内存模型 JVM内存结构JVM内存结构或者说内存模型指的是...

  • 内存优化1- JVM和GC基础

    Jvm内存模型: 从Jvm内存模型中入手对于理解GC会有很大的帮助,不过这里只需要了解一个大概,说多了反而混淆视线...

  • 高效并发

    从JVM的角度看一下Java与线程,内存模型,线程安全以及JVM对于锁的优化 硬件内存模型与JVM内存模型 硬件的...

网友评论

      本文标题:jvm内存模型的理解

      本文链接:https://www.haomeiwen.com/subject/zdxhlqtx.html