内存分配以及回收Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区。程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有。虚拟机栈:线程私有。方法在执行时会创建一个栈帧,用于存储局部变量表等。局部变量表中存放了编译器可知的基本数据类型、对象引用、returnAddress(指向了一条字节码指令的地址)本地方法栈:与虚拟机栈类似,只不过
分类:
编程语言 时间:
2019-04-28 20:26:53
阅读次数:
171
概述:知识点汇总jvm的知识点汇总共6个大方向:内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。各个部分的内容如下:1>内存模型部分:程序计数器、方法区、堆、栈、本地方法栈的作用,保存哪些数据;2>类加载部分:双亲委派的加载机制以及常用类加载器分别加载哪种类型的类;*3>GC部分:*分代回收的思想
分类:
其他好文 时间:
2019-04-27 22:45:00
阅读次数:
232
原文出处: 兰亭风雨 内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。 程序计数器(Pr ...
分类:
编程语言 时间:
2019-04-25 15:59:25
阅读次数:
129
-XX: MaxDirectMemorySize >设置直接内存,不设置与Java堆内存最大值一致,就是jvm虚拟机运行可支配的内存 -XX:PermSize(老年代大小)和-XX:MaxPermSize(永久代大小) >设置方法区大小 -Xoss >设置本地方法栈大小(实际无效,栈容量只由-Xss ...
分类:
其他好文 时间:
2019-04-22 15:14:37
阅读次数:
346
上面已经聊过JVM是什么东东,也谈过了JVM内存的垃圾回收机制。这一篇博客我们来聊聊JVM运行时数据区域。 JVM运行时数据区域由5块部分组成,分别是堆,方法区,栈,本地方法栈,以及程序计数器组成。 可以根据内存是否线程共享划分成线程独享内存区域/线程共享内存区域。 我们从简单的部分开始吧 1.程序 ...
分类:
其他好文 时间:
2019-04-15 17:59:32
阅读次数:
174
垃圾收集主要是针对堆和方法区两部分内存,程序计数器和Java虚拟机栈,还有本地方法栈,都随着线程的存在而存在,随着线程的消亡而消亡,因此不需要对这三个部分进行垃圾收集。 ...
分类:
其他好文 时间:
2019-04-12 13:44:23
阅读次数:
172
由于在Hotspot虚拟机中中不区分虚拟机栈和本地方法栈,因此通过-Xoss修改参数是无效的,可以通过修改-Xss设定。 如果线程请求的栈深度大于虚拟机允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryErro ...
分类:
编程语言 时间:
2019-03-29 01:18:04
阅读次数:
190
Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。 这些区域各有个的用途、以及创建和销毁时间,有的随虚拟机进程的启动而存在,有的则依赖于用户线程的启动和结束而建立和销毁。 Java虚拟机主要分为5部分:方法区、虚拟机栈、本地方法栈、堆、程序计数器。 程序计数器:是一 ...
分类:
编程语言 时间:
2019-03-28 00:48:52
阅读次数:
188
1.概述 Java内存运行时区域,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此在这几个区域的内存分配和回收都具备确定性。而Java堆和方法区则不一样 ...
分类:
其他好文 时间:
2019-03-25 19:20:41
阅读次数:
162
垃圾收集 程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;这几个区域的内存分配和回收都具备稳定性,不需要过多的考虑回收的问题。而Java堆和方法区则不一样。 Java堆中存储了几乎所有的对象实例,垃圾收集器进行对堆的回收之前,需要判断这些对象是否还存活 一。判断对象是否存活 判断对象 ...
分类:
编程语言 时间:
2019-03-16 16:53:16
阅读次数:
193