【JVM 知识体系框架总结】 https://www.cnblogs.com/mousycoder/p/11612448.html JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆->数组对象 线程隔离区虚拟机栈-> 方法本地方法栈->本地方法库 native 堆、程序计数器 JVM ...
分类:
其他好文 时间:
2019-10-04 09:14:22
阅读次数:
85
垃圾收集器垃圾收集(Garbage Collection,GC)。当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统更高并发量的瓶颈时,我们需要去了解GC和内存分配。 检查对象的"存活"状态 虚拟机栈(栈帧中的本地变量表)中引用的对象; 方法区中静态属性引用的对象; 方法区中常量引用的对象; ...
分类:
其他好文 时间:
2019-09-30 23:56:47
阅读次数:
194
JVM 内存分布 线程共享数据区: 方法区 类信息,静态变量 堆 数组对象 线程隔离区 虚拟机栈 方法 本地方法栈 本地方法库 native 堆、程序计数器 JVM 运行数据 程序计数器 线程隔离 ,比较小的内存空间,当前线程所执行的字节码的行号 线程是一个独立的执行单元,由 CPU执行 唯一没有 ...
分类:
其他好文 时间:
2019-09-30 14:48:28
阅读次数:
73
首先要明确,垃圾回收管理jvm的堆内存,方法区是堆内存的一部分,所以也是。 而本地方法栈,虚拟机栈,程序计数器随着线程开始而产生,线程的结束而消亡,是不需要垃圾回收的。 1. 判断对象是否可以被回收 1.1 引用计数法 + 原理:给对象添加一个计数标志,被引用一次就加1,引用取消就减1,而垃圾回收时 ...
分类:
编程语言 时间:
2019-09-23 22:40:21
阅读次数:
113
1. 说说JVM的内存分区 线程私有的区域 程序计数器:JVM中程序计数器相当于汇编语言中的CPU中的寄存器,保存程序当前执行的指令的地址。 虚拟机栈:Java方法执行的栈由许多个栈帧构成,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表(Local Variables)、操作数栈(Operan ...
分类:
编程语言 时间:
2019-09-23 15:25:13
阅读次数:
119
首先,JVM除了程序计数器之外,都可能发生内存溢出OutOfMemoryError(OOM)异常。这里主要对可能发生内存溢出的区域,原因进行总结。 1.JAVA虚拟机栈 虚拟机栈是线程私有的,虚拟机栈主要存储局部变量。Java虚拟机规范中,规定了此区域会抛出两种异常: (1)如果请求栈深度大于虚拟机 ...
分类:
编程语言 时间:
2019-09-08 00:02:58
阅读次数:
85
GC需要完成的三个件: 哪些内存需要回收 ?什么时候回收? 如何回收? java内存运行时区域中程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出 而有条不紊的执行着出栈和入栈操作。每一个桢帧中分配多少内存基本上是类结构确定下来就已知的,因此这个区域的内存 ...
分类:
其他好文 时间:
2019-09-07 13:11:22
阅读次数:
92
jvm虚拟机栈的作用 jvm虚拟机栈栈帧的组成 jvm虚拟机栈,也叫java栈,它由一个个的栈帧组成,而栈帖由以下几个部分组成 局部变量表 存储方法参数,内部使用的变量 操作数栈 在变量进行存储时,需要进行入栈和出栈 动态连接 引用类型的指针 方法出口 方法的返回 一段原程序代码 一 生成字节码文件 ...
分类:
其他好文 时间:
2019-08-29 13:49:06
阅读次数:
80
对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为 ...
分类:
其他好文 时间:
2019-08-29 11:41:02
阅读次数:
70
前言 上一篇中,我们了解了JVM中的线程独占区,这节课我们就来了解一下JVM中的线程共享区,JVM中的线程共享区是跟随JVM启动时一起创建的,包括堆(Heap)和方法区()两部分,而线程独占区的程序计数器,虚拟机栈,本地方法栈的生命周期都是跟随线程的,随线程的创建而诞生,随线程的销毁而销毁。 堆(H ...
分类:
编程语言 时间:
2019-08-29 09:14:48
阅读次数:
97