GC需要完成的3件事情: 1.哪些内存需要回收? 2.什么时候回收? 3.如何回收? 哪些内存需要回收? 对于程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈帧随方法的进入和退出执行入栈和出栈的操作。每一个栈帧分配多少内存基本上在类结构确定下来时就已知(运行期JIT编译器会进行一些 ...
分类:
其他好文 时间:
2016-08-21 00:50:43
阅读次数:
147
最近看了有关虚拟机的书籍,发现有很多虚拟机配置参数不知道,特来记录一下, -XX: MaxDirectMemorySize >设置直接内存,不设置与Java堆内存最大值一致 -XX:PermSize和-XX:MaxPermSize >设置方法区大小 -Xoss >设置本地方法栈大小 -XX:+Hea ...
分类:
编程语言 时间:
2016-08-18 00:48:21
阅读次数:
234
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的 ...
分类:
编程语言 时间:
2016-08-14 07:37:24
阅读次数:
202
看的《深入理解Java虚拟机》 Java内存区域 一。运行时数据区域 1.Java虚拟机管理的内存包括的运行时数据区:程序计数器Program Couter Register,虚拟机栈VM Stack,本地方法栈Native Method Stack,堆Heap,方法区Method Area。2.程 ...
分类:
其他好文 时间:
2016-08-12 00:40:34
阅读次数:
165
运行时数据区域 1程序计数器 2 Java虚拟机栈 3本地方法栈 4 Java堆 5 方法区 6运行时常量池直接内存 下面来分别说下这个概念 1程序计数器:(program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 字节码解释器工作时就 ...
分类:
编程语言 时间:
2016-08-11 01:00:58
阅读次数:
249
1.JVM内存管理的机制 内存空间划分为:Sun JDK在实现时遵照JVM规范,将内存空间划分为堆、JVM方法栈、方法区、本地方法栈、PC寄存器。 堆: 堆用于存储对象实例及数组值,可以认为Java中所有通过new创建的对象的内存都在此分配,Heap中对象所占用的内存由GC进行回收,在32位操作系统 ...
分类:
其他好文 时间:
2016-08-06 23:36:19
阅读次数:
419
1.概述程序计数器、虚拟机栈、本地方法栈是线程私有的,内存分配和回收都具有确定性,不需要考虑垃圾回收的问题,方法结束或者线程结束,内存就自然回收了java堆和方法区的内存的分配和回收都是动态的,垃圾收集器所关注的是这部分的内存2.垃圾收集器处理的对象垃圾收集器需要确定哪些对象还“存活”着,哪些已经“... ...
分类:
其他好文 时间:
2016-07-25 16:09:40
阅读次数:
148
Java虚拟机运行时数据区包括PC寄存器、Java虚拟机栈、Java堆、方法区、本地方法栈、运行时常量池六个部分。 1. PC寄存器 PC寄存器(又叫程序计数器,Program Counter Register),每一条Java虚拟机线程都有自己的PC寄存器。PC寄存器报错当前正在执行方法的字节码指 ...
分类:
编程语言 时间:
2016-07-15 13:34:11
阅读次数:
165
我们可以总结一下在java程序中有六种数据区 1.程序计数器2.JVM栈3.本地方法栈(他们是线程私有的) 4.堆5.方法区6.常量池(他们是线程共有的) 内存是什么? 内存就是暂时存储程序以及数据的地方,要注意的是它和外存不同,外层只是存储的地方,就好比是书架放书而内存则是书桌的相对概念 关于这六 ...
分类:
编程语言 时间:
2016-07-06 00:19:47
阅读次数:
201
JVM:-----------------1.JVM:javavirtualmachine.2.classfile*.class3.ClassLoader4.runtimedataarea运行时数据区。1.Methodarea:方法区.(shared)供所有线程共享.2.heap(shared):供所有线程共享.3.javastack(栈区)独占的。4.nativemethodstack(本地方法栈)独占5.Programcounter..
分类:
其他好文 时间:
2016-06-27 00:17:47
阅读次数:
132