JVM内存划分】的更多相关文章

JVM内存划分吗? 前言: 大家都知道虚拟机,都知道JVM,其实这些都是基于sun公司[oracle公司]的HotSpot虚拟机,当然本篇博文也是以sun公司为基础.还有其他的虚拟机,常见的就有JRockit虚拟机.以及IMB的j9虚拟机,大致市场上就这三个,三个各有好处,如果想详细了解可以问问google大神. 一.传统划分[程序猿认为] 很多程序猿都认为jvm在划分内存的时候分为栈内存和堆内存,这个分法其实比较粗糙的,java内存区域的划分实际上远比这个复杂.这个划分方式的流行只能说明,大多…
第一部分 JVM内存划分 目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢.这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制.概括地说,该机制对 JVM(J…
概述 如果在大学里学过或者在工作中使用过 C 或者 C++ 的读者一定会发现这两门语言的内存管理机制与 Java 的不同.在使用 C 或者 C++ 编程时,程序员需要手动的去管理和维护内存,就是说需要手动的清除那些不需要的对象,否则就会出现内存泄漏与内存溢出的问题. 如果你使用 Java 语言去开发,你就会发现大多数情况下你不用去关心无用对象的回收与内存的管理,因为这一切 JVM 虚拟机已经帮我们做好了.了解 JVM 内存的各个区域将有助于我们深入了解它的管理机制,避免出现内存相关的问题和高效的…
Day05_SHJavaTraing_4-8-2017 一.JVM对自己的内存划分为5个区域    1.方法栈:所有的方法运行的时候进入内存    2.堆:存储的是容器和对象    3.方法和数据共享: 运行时期class文件进入的地方    4.本地方法栈: JVM调用了系统中的功能    5.寄存器:内存和CUP之间 二.值传递和引用传递的区别(易错内容) 1.方法参数是基本数据类型 方法参数是基本数据类型时,传递的是值. //演示方法参数是基本数据类型的传递 class Demo{ pub…
基本数据变量类型:byte.short.int.long.float.double.boolean.char eg : int i = 1; 引用数据变量类型:数组.类.接口.枚举.注解 eg : Scanner sc = new Scanner(System.in);//接受键盘输入 Random ran = new Random(10); //产生0-10之间的随机数 定义数组的三种方式: int[] arr = new int[3];//定义一个元素个数为3的数组,存储整数,这个arr实际…
参考:深入理解JAVA虚拟机(第二版)…
前言 Java程序的运行是通过Java虚拟机来实现的.通过类加载器将class字节码文件加载进JVM,然后根据预定的规则执行.Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些内存区域被统一叫做运行时数据区.Java运行时数据区大致可以划分为5个部分.如下图所示.在这里要特别指出,我们现在说的JVM内存划分是概念模型.具体到每个JVM的具体实现可能会有所不同.具体JVM的实现我只会提到HotSpot虚拟机的实现细节. 程序计数器 程序计数器是一块较小的内存…
前言 Java程序的运行是通过Java虚拟机来实现的.通过类加载器将class字节码文件加载进JVM,然后根据预定的规则执行.Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些内存区域被统一叫做运行时数据区.Java运行时数据区大致可以划分为5个部分.如下图所示.在这里要特别指出,我们现在说的JVM内存划分是概念模型.具体到每个JVM的具体实现可能会有所不同.具体JVM的实现我只会提到HotSpot虚拟机的实现细节. 程序计数器 程序计数器是一块较小的内存…
发现网上有两个版本的JVM内存划分,一个是按照<深入理解JVM虚拟机>上的版本,包含程序计数器等,按照是否线程共享划分. 另一个我觉得更好记一些,也更适合我自己,在这里记录一下. 首先上思维导图: 一个个来说道吧. 堆内存 heap 堆内存主要被划分为新生代和老年代(叫法不一,差不多的意思).JVM默认Yong和Old分配比例为1:2,即新生代的内存大小为堆内存的1/3. (调整参数:–XX:NewRatio) 基本上所有对象实例都在堆中创建,因此堆内存经常发生GC回收操作.新的对象首先分配在…
一.JVM内存划分 |--------------------|-------------PC寄存器-------| |----方法区 ---------|--------------java 虚拟机栈--| |----堆区----------- |-------------本地方法栈------| |----共享区域------- |--------------线程独有-------| 其中左边为共享内存空间,右边为线程独有的线程级别的内存 各个区存储什么? 1.方法区:类的描述,常量等 2.…