学习JVM有什么实际意义呢?

很多人应该都和我有一样的想法,每天CRUD就完了,学习JVM 堆、栈、方法区、程序计数器、执行引擎、标记清除算法、复制算法、标记整理算法、分代回收算法等等等等,这些东西在实际开发中又有什么用呢?

学之前,百思不得其解,但因为面试需要,又不得不学,随着课程的深入,我渐渐有些明白了,先总结如下:

1、学习JVM能更深入的理解Java这门语言,能理解Java语言底层的执行过程,很多时候要解决一个问题必须深入到字节码层次去分析,才能得到准确的结论,而字节码就是JVM的一部分。

2、学习JVM,为了项目上线后去排查一些程序log日志中无法呈现的问题,比如内存溢出、GC太过频繁导致的高延迟问题,这时候就需要去看GC日志了,如果你连GC日志是什么都不知道的话,又怎么去排查呢?看GC日志,就得知道什么是年轻代、老年代、伊甸园区、survivor区、元数据区等等内存模型的概念及其特点。懂了这些还得知道GC的时候为什么会导致高延迟呢,这时候让我想到了各种回收算法的优劣势,高延迟时,是不是调整一些参数就可以了呢?

3、能够利用一些工具,jmap, jvisualvm, jstat, jconsole等工具可以辅助你观察Java应用在运行时堆的布局情况,由此你可以通过调整JVM相关参数提高Java应用的性能。

4、比如用JMeter测试程序高并发时的性能问题,需要了解 请求响应时间,吞吐量,CPU占用率,内存使用率,这些东西是不是也和JVM有关呢,比如是不是少声明一些全局变量,少声明一些存在时间长的大变量(比如全局缓存的hashmap),内存占用率就能低很多了呢?

以上的种种都与JVM息息相关,现在用不上,不代表以后用不上,不代表面试官不会问,虽然你没用过,但是面试官的问题你都能答的面面俱到,岂不美哉。

一句话,学,就完了。

伟大的牛逼之前总是傻逼式的坚持。

 

往期精彩内容:

Java知识体系总结(2021版)

Java多线程基础知识总结(绝对经典)

【全栈最全Java框架总结】SSH、SSM、Springboot

超详细的springBoot学习笔记

常见数据结构与算法整理总结

Java设计模式:23种设计模式全面解析(超级详细)

Java面试题总结(附答案)

 

  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值