JAVA内存组成
来源:互联网 发布:海量数据是什么 编辑:程序博客网 时间:2024/06/08 03:50
堆(Heap)和非堆(Non-heap)内存
按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。
在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。
如上图说示:
- Heap Memory 存放Java对象
- Non-Heap Memory 存放类加载信息和其它meta-data
- Other 存放JVM 自身代码等
在JVM启动时,就已经保留了固定的内存空间给Heap内存,这部分内存并不一定都会被JVM使用,但是可以确定的是这部分保留的内存不会被其他进程使用。这部分内存大小由
-Xmx 参数指定。
而另一部分内存在JVM启动时就分配给JVM,作为JVM的初始Heap内存使用。影响这个的参数是 -Xms。默认空余堆内存小于40%时,JVM 就会增大堆直到-Xmx的最大限制,可以由-XX:MinHeapFreeRatio指定。
默认空余堆内存大于70%时,JVM 会减少堆直到-Xms的最小限制,可以由-XX:MaxHeapFreeRatio指定。
默认空余堆内存大于70%时,JVM 会减少堆直到-Xms的最小限制,可以由-XX:MaxHeapFreeRatio指定。
0 0
- [Java 内存]Java内存组成
- Java JVM 内存组成
- JAVA内存组成
- Java虚拟机内存组成
- Java内存组成&GC算法
- JAVA内存管理【1.3 JVM的内存区域组成】
- 【转载】Java虚拟机的内存组成以及堆内存介绍
- Java虚拟机的内存组成以及堆内存介绍
- Java虚拟机的内存组成以及堆内存介绍
- java——jvm专题 jvm内存组成及分配
- java成长之路 JVM内存组成及分配
- 轻松搞定java内存模型(一)基本组成
- 应用程序内存组成
- JVM内存区域组成
- JVM内存区域组成
- c语言内存组成
- jvm内存组成+GC
- JVM内存组成
- 手机彩票——Day06_1
- 地图服务 纬度、经度对应坐标轴x,y
- 实现当TreeView中父节点的CheckBox的点选状态改变时,回发服务器端,并且选中父节点,所有子节点全选中
- 基于 REST 的 Web 服务:基础
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- JAVA内存组成
- 【mysql】insert ... on duplicate key update column=IF(条件,值1,值2 ) 简直神一样的操作
- linux下navicat安装
- c# 线程间操作无效: 从不是创建控件“textBox1”的线程访问它。解决方法
- OnPageChangeListener的简单运用
- Display Command Line Arguments (C# Programming Guide)
- handler obtainMessage
- 九度题目1139:最大子矩阵
- 用RD,GR,BL三个方法内代码生成一张图片(非原创,加工品)