java堆内存结构图

【名词解释】
--->eden,so,s1通称为新生代对象储区
--->tenured称为老年代对象存储区
--->s0和s1也称为from和to区域,是两块大小相等,可以互换角色的内存空间。
--->新生代的大小一般设置为真个堆内存空间的1/3或1/4左右

【行为解释】
--->绝大数情况下,对象首先分配在eden区
--->每进行一次垃圾回收,如果对象还存活,则年龄加1。
--->不同年龄的对象存放在java堆不同的区域。
--->不同区域的垃圾回收频率和算法是不相同的
--->不同区域的大小也是不同的。

【异常情况】
--->堆内存溢出java.lang.OutOfMemoryError:java heap space

【参数设定】
-->-Xmx32m  代表堆最大内存空间为32M
-->-Xms10m   代表堆的初始化内存为10M
-->-Xmn10m  代表新生代内存大小为10M
-->-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例关系。含义如下-XX:SurvivorRatio=eden/from=eden/to
-->-XX:NewRatio用来设置老年代和新生代的比例:含义:-XX:NewRatio=老年代/新生代

java的直接内存
【名词解释】
--->直接内存也是java程序非常重要的组成部分,特别是NIO被广泛使用后,直接内存的使用也变的非常普遍。
--->直接内存跳过java堆,使java程序可以直接访问原生堆空间。
--->直接内存大小可以通过参数-XX:MaxDirectMemorySize设定,如果不设定,默认和最大堆内存相同-Xmx。
【参数设定】
--->-XX:MaxDirectMemorySize设置最大直接内存大小。

(2)java堆内存的更多相关文章

  1. Java堆内存的十个要点

    Java中的堆空间是什么? 当Java程序开始运行时,JVM会从操作系统获取一些内存.JVM使用这些内存,这些内存的一部分就是堆内存.堆内存通常在存储地址的底层,向上排列.当一个对象通过new关键字或 ...

  2. 关于java堆内存溢出的几种情况(转)

    [情况一]: java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环: 如果是java堆内存不够 ...

  3. java堆内存详解

    http://www.importnew.com/14630.htmljava堆的特点<深入理解java虚拟机>是什么描述java堆的 Java堆(Java Heap)是java虚拟机所管 ...

  4. Java堆内存溢出模拟

    先了解一下Java堆: 关于Java内存区域的分配,可以查看Java运行时数据区域一篇文章. Java堆是虚拟机内存管理中最大的一块区域,该区域是线程共享的,某Java进程中所有的线程都可以访问该区域 ...

  5. Java堆内存不足

    1)使用IDEA开发程序时有时候会提示“Java Heap space error”,说明IDEA默认配置的Java堆内存不足,程序需要更多的堆内存. 2)堆(Heap)和非堆(Non-heap)内存 ...

  6. Java堆内存划分

    根据对象的存活率(年龄)Java堆内存划分为3种,新生代,老年代,永久代: 1.新生代 比如我们在方法中区new一个对象,那这方法调用完毕后,对象就会被回收,这就是一个典型的新生代对象. 现在的商业虚 ...

  7. Java堆内存又溢出了!教你一招必杀技

    JAVA堆内存管理是影响性能主要因素之一.堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的. 先看下JAVA堆内存是如何划分的,如图: JVM内存划分为 ...

  8. Java堆内存中为什么有两个survival区及为什么与年轻代比例是1:1:8?

    Java堆内存分为年轻代和老年代,其中,年轻代分为Eden区和survival区,survival又分为fromSurvival和toSurvival. 首先第一个问题:为什么要有Survival区? ...

  9. MAT工具定位分析Java堆内存泄漏问题方法

    一.MAT概述与安装 MAT,全称Memory Analysis Tools,是一款分析Java堆内存的工具,可以快速定位到堆内泄漏问题.该工具提供了两种使用方式,一种是插件版,可以安装到Eclips ...

随机推荐

  1. C# 读取oracle 中文乱码的解决方案

    用OracleDataAccess.dll访问oracle数据库,遇到中文乱码的情况. 解决方案如下: 1查看字符集编码, 在数据库服务器端 启动 sqlplus SQL->select use ...

  2. Android中的时间日期选择器

    1.layout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...

  3. 【BZOJ [1878】[SDOI2009]HH的项链

    Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变 ...

  4. 元素属性和js数组

    arrObj.push(数组元素) --增加arrObj.splice(index,howmany)--删除  一般howmany为1,  index,开始截取掉的位置,arrObj[index].P ...

  5. python 知识 rstrip,strip,lstrip

    rstrip,strip,lstrip 作用:去除字符串中的空格或指定字符 一.默认用法:去除空格str.strip()  : 去除字符串两边的空格str.lstrip() : 去除字符串左边的空格s ...

  6. qwt 6.1.0集成进Qt creator 2.8.1步骤

    环境准备与文件编译 ·关于Qt 发现一个Qt正确安装的教程,非常棒!http://www.wikihow.com/Install-Qt-SDK-on-Ubuntu-Linux Qt版本是4.8.5,在 ...

  7. HTTP verb的安全性和幂等性

    Http协议规定了不同方法的安全特性和幂等特性,作为服务提供者的服务器必需为客户端提供这些特性. 安全性,仅指该方法的多次调用不会产生副作用,不涉及传统意义上的“安全”,这里的副作用是指资源状态.即, ...

  8. Visual Studio 中TODO List的使用

    http://msdn.microsoft.com/en-us/library/txtwdysk.aspx 工欲善其事,必先利其器 When the Task List is open, you ca ...

  9. 1049: [HAOI2006]数字序列 - BZOJ

    Description 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大.Input 第一行包含一个数n ...

  10. c++ 16 this 和 继承 及继承机制中的构造函数 与 析构函数

    #include <iostream> #include <string> using namespace std; class Animal { public: Animal ...