JVM 君,你是不是过分了?,java程序设计基础陈国君第六版

本文探讨了Java内存结构,特别是JVM堆内存布局和对象分配,强调了理解这些基础知识对提高代码质量的重要性。同时,针对不同级别的程序员,提供了相应的学习建议和注意事项,包括使用语法糖的潜在风险、性能优化、并发编程和垃圾回收等主题,并推荐了相关书籍和资源。
摘要由CSDN通过智能技术生成

}

有兴趣可以运行看看结果,一旦把这种代码放到了生产环境里,排查非常困难。

2. Java 内存结构和对象分配**

第二个知识点,就是 Java 内存结构和对象分配的基础知识,尤其是 JVM 内存中堆的布局和对象分配的关系。

比如,堆内存的布局

[![](https://img-blog.csdnimg.cn/img_convert/fb020522364c88c4b4a59f38f0867

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

aa8.png)](https://s2.51cto.com/oss/202107/09/82330deac0f7d93132359479a3a4c2c4.png?x-oss-process=image/format,jpg,image/resize,w_600)

当然,Java7 后,新布局变了

知道布局了,就得知道java对象分配的基本原则:

  • 对象优先在Eden区分配

  • 对象太大直接会分配到老年代

只有知道这些知识,才不会经常写下底下这种 bug:

// 将全部行数读取的内存中

List lines = FileUtils.readLines(new File(“temp/test.txt”), Charset.defaultCharset());

for (String line : lines) {

// pass

}

上面这段代码,一旦读取到了大文件,很可能把生产环境搞崩。

所以,把上述两个知识点深入理解了,对新手提

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值