
JVM模型原理
jmlqqs
这个作者很懒,什么都没留下…
展开
-
12000字史上最最最完整深入解析JVM,收藏再看!
工作之余,总结一下JVM相关知识。 Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图: 1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。 2、...原创 2020-03-30 10:55:30 · 172 阅读 · 0 评论 -
jvm如何知道那些对象需要回收
1 首先的问题是:jvm如何知道那些对象需要回收 ? 目前有两种算法: 引用计数法 每个对象上都有一个引用计数,对象每被引用一次,引用计数器就+1,对象引用被释放,引用计数器-1,直到对象的引用计数为0,对象就标识可以回收 这个可以用数据算法中的图形表示,对象A-对象B-对象C 都有引用,所以不会被回收,对象B由于没有被引用,没有路径可以达到对象B,对象B的引用计数就就是0,对象B就会被回收。 r...原创 2019-12-18 15:23:40 · 437 阅读 · 0 评论 -
三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
Hotspot JVM使用和 IBM Websphere及 OracleWeblogic不同的垃圾回收机制,但是垃圾回收的概念和算法是相通的。 HotSpotJVM 1)HotSpotJVM使用内存分区(如永久perm区和分代Generation Heap区),分代区(Generation Heap区)又包括新生Yong区和老生Old/Tenured区,Yong区中又分为Eden区和 Survio...原创 2019-12-18 09:28:40 · 205 阅读 · 0 评论 -
jvm(java虚拟机)中堆和栈和方法区(永久代)
于java程序员来说,jvm的了解是必不可少的,很多面试官都会问你对jvm有什么了解。我大三面试时就遇到了这个问题。我最开始接触jvm是在多线程的时候,当时我认为jvm只是管理线程的,但其实jvm包含了很多知识点,下面我们就讲讲jvm中的堆和栈。 jvm五大区: 其中方法区和堆内存是线程共享的,本地方法栈、虚拟机栈、程序计数器是线程独占的 堆内存可以细分为: 有人可能会问永久代到底是属于堆呢,...原创 2019-12-17 18:01:04 · 1264 阅读 · 0 评论 -
JVM的内存区域划分(jdk7和jdk8)
前言 1、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 2、JRE/JDK/JVM是什么关系 JRE(JavaRuntimeEnvironment,Java...原创 2019-12-13 16:09:03 · 239 阅读 · 0 评论 -
Java-面试--Java8-JVM内存模型
JVM内存模型架构图 各个模块解读 1 Program Counter Register (程序计数寄存器) 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机概念模型里(概念模型,各种虚拟机可能会通过一些更高效的方式实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令:分...原创 2019-12-13 11:07:42 · 511 阅读 · 0 评论 -
面试官:Java8 JVM内存结构变了,永久代到元空间
如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化。 再来看一下《 JVM之内存结构详解 》中的内存结构图。 为了更细化的讲解,我们将该图进行进一步的优化调整。针对java7及以前版本的细化。 看出变化了吗?堆和方法区连在了一起,但这并不能说堆和方法区是一起的,它们在逻辑上依旧是分开的。但在物理上来说,...原创 2019-12-13 10:42:54 · 159 阅读 · 0 评论