2081|0

1018

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

Java堆内存的10个要点 [复制链接]

  当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我甚至不知道当对象创建时,它们被放在了哪里。当我开始正式写一些程序后,我会经常遇到java.lang.outOfMemoryError的报错,之后我才开始关注什么是堆内存或者说堆空间(heapspace)。下面就由卓跃教育为您做一个介绍。
  对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编程的每个基础,使你发觉编程的秘诀。对于程序员来说,知道堆空间,设置堆空间,处理堆空间的outOfMemoryError错误,分析heapdump是非常重要的。这个关于Java堆的教程是给我刚开始学编程的兄弟看的。如果你知道这个基础知识或者知道底层发生了什么,当然可能帮助不是那么大。除非你知道了对象被创建在堆中,否则你不会意识到OutOfMemoryError是发生在堆空间中的。我尽可能的将我所知道的所有关于堆的知识都写下来了,也希望你们能够尽可能多的贡献和分享你的知识,以便可以让其他人也受益。
  Java中的堆空间是什么?
  JavaHeapdump
  Heapdump是在某一时间对Java堆内存的快照。它对于分析堆内存或处理内存泄露和Java.lang.outofmemoryerror错误是非常有用的。在JDK中有一些工具可以帮你获取heapdump,也有一些堆分析工具来帮你分析heapdump。你可以用“jmap”来获取heapdump,它帮你创建heapdump文件,然后,你可以用“jhat”(堆分析工具)来分析这些heapdump。
  Java堆内存(heapmemory)的十个要点
  1.Java堆内存是操作系统分配给JVM的内存的一部分。
  2.当我们创建对象时,它们存储在Java堆内存中。
  3.为了便于垃圾回收,Java堆空间分成三个区域,分别叫作NewGeneration,OldGeneration或叫作TenuredGeneration,还有PermSpace。
  4.你可以通过用JVM的命令行选项-Xms,-Xmx,-Xmn来调整Java堆空间的大小。不要忘了在大小后面加上”M”或者”G”来表示单位。举个例子,你可以用-Xmx256m来设置堆内存最大的大小为256MB。
  5.你可以用JConsole或者Runtime.maxMemory(),Runtime.totalMemory(),Runtime.freeMemory()来查看Java中堆内存的大小。
  6.你可以使用命令“jmap”来获得heapdump,用“jhat”来分析heapdump。
  7.Java堆空间不同于栈空间,栈空间是用来储存调用栈和局部变量的。
  8.Java垃圾回收器是用来将死掉的对象(不再使用的对象)所占用的内存回收回来,再释放到Java堆空间中。
  9.当你遇到java.lang.outOfMemoryError时,不要紧张,有时候仅仅增加堆空间就可以了,但如果经常出现的话,就要看看Java程序中是不是存在内存泄露了。
  10.请使用Profiler和Heapdump分析工具来查看Java堆空间,可以查看给每个对象分配了多少内存。
  
  
此帖出自信息发布论坛
点赞 关注
个人签名android培训
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表