`

Java堆内存Heap与非堆内存Non-Heap

阅读更多

堆(Heap)和非堆(Non-heap)内存 
    按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。 
堆内存分配 
    JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指 定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。 
非堆内存分配 
    JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。 
JVM内存限制(最大值) 
    首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然 可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统 下为2G-3G),而64bit以上的处理器就不会有限制了。

引自:http://blog.csdn.net/softwave/article/details/6238747

分享到:
评论

相关推荐

    深入Java内存分配

    Java有几种存储区域? java内存分配 Java内存模型 Java内存分配实例解析 String 常量池问题 堆(Heap)和非堆(Non-heap)内存 堆内存分配 非堆内存分配

    eclipse.ini

    堆(Heap)和非堆(Non-heap)内存 按照官方的说法:java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。在JVM中堆之外的内存称为非堆内存(Non-heap ...

    深入理解Java:String

    JVM主要管理两种类型内存:堆和非堆,堆内存(HeapMemory)是在Java虚拟机启动时创建,非堆内存(Non-heap Memory)是在JVM堆之外的内存。简单来说,非堆包含方法区、JVM内部处理或优化所需的内存(如JITCompiler,...

    myeclipsejava虚拟机jvm参数设置

    提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。 本文档给出了解决办法,行之有效,希望能...

    深入java虚拟机(inside the java virtual machine)

    java虚拟机的运行机理的详细介绍 Inside the Java Virtual Machine Bill Venners $39.95 0-07-913248-0 Inside the Java Virtual Machine Acknowledgments Introduction Part One: Java's Architecture 1 ...

    Android内存泄漏的轻松解决方法

    前言 内存管理的目的就是让我们在开发过程中有效避免... 方法区(non-heap):编译时就分配好,在程序整个运行期间都存在。它主要存放静态数据和常量; 栈区:当方法执行时,会在栈区内存中创建方法体内部的局部变量

    Java编程思想读书笔记.rar

    6. NON-RAM:硬盘等永久存储空间 2. 特例:基本型别 基本类型数据存放在Stack中,存放的是数据。而产生对象时,只把对象的reference存放在stack中,用于指向某个对象,对象本身存放在Heap中。 3. Java中的数组 ...

    java 面试题 总结

    内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的...

    Screenshot-non-root-:无需root权限的安卓截图软件

    下图是在activity界面下拉通知栏,然后右侧DDMS显示heap里面的内存分配变化,基本变化不大,还是比较稳定的。 下图是两个手机连接PC时手机端的屏幕共享,左图是Sony MT15i,安卓4.04的系统右图是Galaxy S I9000,安卓...

    积分java源码-hascalator:在Scala中重新实现HaskellPrelude(为了好玩)

    积分java源码(由Sandro Stucky设计的标志 - 取自 Martin Odersky 的演讲The Evolution of Scala ,2015)。 该库实现了以下数据类型: data.Dequeue data.Either data.Heap data.List data.NonEmpty data.Maybe ...

    java面试题

    76.8. 说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 87 77. tomcat 87 77.1. 解决端口冲突导致tomcat无法启动的问题 87 77.2. 修改java虚拟机内存 88 77.3. 修改tomcat连接数 88 77.4. 禁止列...

    java面试宝典

    174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话...

    java基础题 很全面

    21. 说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 22 22. 说说你所熟悉或听说过的j2ee中的几种常用模式? 22 数据库 23 1. 说出数据连接池的工作机制是什么? 23 2. 存储过程和函数的区别。 23 3...

    超级有影响力霸气的Java面试题大全文档

    内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的...

    重读JAVA编程思想

    当年如猪八戒吃人生果般的读了java编程思想,只是知道这是本好书,但是具体细节,真是不知所云,很多都是工作中用到哪些,然后翻《think in java 》和《core java》,有了这么多实际java编程经验之后,再翻这部著作...

    Java邮件开发Fundamentals of the JavaMail API

    Looking to incorporate mail facilities into your platform-independent Java solutions? Look no further than the JavaMail API, which offers a protocol-independent model for working with IMAP, POP, ...

    千方百计笔试题大全

    187、JAVA SERVLET API中forward() 与redirect()的区别? 44 189、Can a Java Thread be started from Servlet class, and what will be the implications? 45 190、What is ...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    Formatting Line Length Non-ASCII Characters Spaces vs. Tabs Function Declarations and Definitions Function Calls Conditionals Loops and Switch Statements Pointer and Reference Expressions Boolean ...

    Crafting a Compiler by Charles N. Fisher Richard J. LeBlanc 带目录版

    5.6 A Non-LL(1) Language 159 5.7 Properties of LL(1) Parsers 161 5.8 Parse Table Representation 163 5.8.1 Compaction 164 5.8.2 Compression 165 5.9 Syntactic Error Recovery and Repair 168 5.9.1 Error ...

    Debugging with GDB --2007年

    Table of Contents Summary of GDB . . . . . . . . ....Free software ....Contributors to GDB ....A Sample GDB Session ....Loading the Executable ....Setting Display width....Setting Breakpoints ....Running the executable ...

Global site tag (gtag.js) - Google Analytics