至今为止,我基本上发现网上没有几个博客说的很明白的,今天我在这里斗胆总结一下,各位大佬,如有错误,还望指责 ^ _ ^ 首先那肯定还得是看看概念了,在JVM中,什么可以作为GC Root呢? 虚拟机栈(栈帧中的本地变量表)中引用的对象。 方法区中类静态属性引用的对象。 方法区中常量引用的对象。 本地 ...
分类:
其他好文 时间:
2020-05-20 18:41:21
阅读次数:
201
title: 深入理解Java虚拟机 date: 2020 05 14 10:58:24 tags: JVM,虚拟机 [TOC] 1.运行时数据区域 1.程序计数器 当前线程执行字节码的行号指示器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法,则为空) 2.虚拟机栈 虚拟机栈描述的 ...
分类:
编程语言 时间:
2020-05-19 22:46:31
阅读次数:
72
一、JVM内存区域JVM内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA堆、方法区】、直接内存。二、线程私有区域线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束而创建/销毁。程序计数器:是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。正在执行java方法的话,计数器记录的是虚拟字节码指令的地址(当前指令的地址)。如果还是native方
分类:
其他好文 时间:
2020-05-18 09:19:10
阅读次数:
68
第二章:Java内存区域与内存溢出异常 2.1 运行时数据区 1:程序计数器 : 线程私有,较小的内存空间,当前线程所执行的字节码的行号指示器,唯一不会发生错误的内存区域 2:虚拟机栈: 线程私有,生命周期和线程相同,为虚拟机执行Java方法服务,指的是Java内存模型,可发生StackOverfl ...
分类:
编程语言 时间:
2020-05-15 13:54:48
阅读次数:
66
概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, ...
分类:
编程语言 时间:
2020-05-10 11:23:11
阅读次数:
81
不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型、内存分配,以及回收算法机制等,这些都是必考、必会技能。 JVM内存模型 JVM内存模型可以分为两个部分,如下图所示,堆和方法区是所有线程共有的,而虚拟机栈,本地方法栈和程序计数器则是线 ...
分类:
编程语言 时间:
2020-05-07 13:46:31
阅读次数:
73
Hotspot虚拟机在JDK8时的JVM内存模型 1.将虚拟机栈和本地方法栈合二为一 2.移除永久代,引入元空间来实现方法区 3.将运行时常量池加入堆空间 ...
分类:
其他好文 时间:
2020-05-06 13:55:16
阅读次数:
55
Java虚拟机运行时数据区图 程序计数器 程序计数器,可以看作当前线程所执行的字节码的行号指示器 它是线程私有的。 Java虚拟机栈 线程私有的,生命周期与线程相同。 每个方法被执行的时候都会创建一个"栈帧",用于存储局部变量表(包括参数)、操作数栈、动态链接、方法出口等信息。 局部变量表存放各种基 ...
分类:
其他好文 时间:
2020-05-05 11:10:19
阅读次数:
62
Java 虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的。 本地方法栈:Java ...
分类:
其他好文 时间:
2020-04-26 14:03:32
阅读次数:
87
这里我们先说句题外话,相信大家在面试中经常被问到介绍Java内存模型,我在面试别人时也会经常问这个问题。但是,往往都会令我比较尴尬,我还话音未落,面试者就会“背诵”一段(Java虚拟机是由堆、方法区、虚拟机栈,吧啦吧啦。。。),估计心里还一脸自豪的想幸好哥提前在网上搜过,早有准备。每每这个时候,我都 ...
分类:
编程语言 时间:
2020-04-23 20:56:08
阅读次数:
88