java测试开发面试指导内存模型.pdfVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

java内存组成介绍:堆(Heap)和非堆(Non-heap)内存

简单来说堆就是留给开发人员使用的;非堆就是JVM留给自己用的

案例

JAVA_OPTS-Xms2048m-Xmx2048m”

HeapSize最大不要超过可用内存的80%,一般的要将-Xms和-Xmx选项设置为

相同,而-Xmn为1/4的-Xmx值

HeapSize不能大于内存80%

JavaHeapTest

JVM不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收

集方式,以便提高回收效率。

在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如

Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期

比较长。但是还有一些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会

比较短,比如:String对象,由于其不变类的特性,系统会产生大量的这些对象,有些对象

甚至只用一次即可回收。有的比如连接池共享的需要多次使用。

因此jvm设计了分代回收采用分治的思想,进行代的划分,把不同生命周期的对

象放在不同代上,不同代上采用最适合它的回收方式进行回收。

如何分代

虚拟机中的共划分为三个代:年轻代(YoungGeneration)、年老点(OldGeneration)

和持久代(PermanentGeneration)。

年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象

在年轻代中经历了N次回收后仍然存活的对象,就会被放到年老代中。因此,可以

认为年老代中存放的都是一些生命周期较长的对象。

持久代主要存放的是Java类的类信息,与收集要收集的Java对象关系不大。年轻

代和年老代的划分是对收集影响比较大的。

由于触发GC系统性能有影响

什么情况下触发回收

由于对象进行了分代处理,因此回收区域、时间也不一样。GC有两种类型:Scavenge

GC和FullGC。

案例

java-Xmx3550m-Xms3550m-Xmn2g-Xss128k

-Xmx3550m:设置JVM最大可用内存为3550M。

-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次

回收完成后JVM重新分配内存。

-Xmn2g:设置年轻代大小为2G。整个JVM内存大小年轻代大小+年老代大小+持久

代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对

系统性能影响较大,Sun推荐配置为整个堆的3/8。

-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个

线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同内存下,减小

这个值能生成的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生

成,经验值在3000~5000左右。

文档评论(0)

zhishifuwu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档