- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1
中国软件测试群: 172923163
MyTesting 群: 231767115 分享创造价
2
Java内存泄露背景知识
JVM 内部体系结构
3
Java内存泄露背景知识
Java 内存管理
• 内存的分配—new
• 内存的释放—gc
• 区分 “不再引用”和 “不再需要”
4
Java内存泄露背景知识
内存分配
5
Java内存泄露背景知识
Java对象及其引用
• 定义类
• 创建对象
• 代码对应内存分配
6
Java内存泄露背景知识
Java对象及其引用
• 两个对象引用指向了同一块内存
7
Java内存泄露背景知识
Java对象及其引用
• 一个对象引用可以指向0个或1个对象 (当=null时,指向0个对象)
• 一个对象可以有N个引用指向它
• ?
8
Java内存泄露背景知识
对象气球
• 对象就像一个充满氢气的气球,我们没有办法直接去得到它,要
想对它的使用都必须通过一根连着它的绳子来访问,这根绳子就 对象 对象
是对象的引用。
1. 一根绳子同时只能连着一个气球,就像一个引用同时只能指向一个对象;
2. 可以用多根绳子同时连接一个气球,也就是可以有多个引用同时指向同一个
对象; 引用 引用 引用
3. 如果某个气球没有任何绳子连着它,那它就会飞走,同样,某个对象如果没
有引用连接它,它就会成为垃圾,等着被java 的垃圾收集器回收;
对象
4. 如果某根绳子没有连接任何气球,那么它就是一个空引用,对它的访问没有
意义。 null
5. 同样,某个引用如果没有指向对象,那么对它的访问将会抛出
NullPointerException
9
Java内存泄露背景知识
内存回收
• 垃圾收集算法
– 引用计数算法 (Reference Counting)
– 标记-清除算法 (Mark-Sweep ) 核心:
1、发现无用信息对象
– 标记-整理算法 (Mark-Compact ) 2、回收被无用对象占用的空间
– 复制算法 (Copying )
– 分代收集算法 (Generational Collecting )
• 垃圾收集方式
– 串行收集
– 并行收集 (吞吐量优先)
– 并发收集 (响应时间优先)
10
Java内存泄露背景知识
GC类型
• 新生代GC (Minor GC)
– 发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕灭的特
性,所以Minor GC非常频繁,一般回收速度也比较快
• 老年代GC (Major GC/Full GC)
– 发生在老年代的GC,出现了Major GC,经常会伴随至少一次的Minor GC。
Major GC的速度一般会比Minor GC慢10倍以上
11
Java内存泄露背景知识
JVM
原创力文档


文档评论(0)