51培训网合作机构 > 上海培训学校 > 上海达内教育欢迎您!
手机版 | 分享到
联系电话

报名咨询热线(咨询时间9:00-21:00)

021-63301563

当前位置:编程语言培训资讯 > 学习JAVA为何需要学习Java虚拟机答案当然不是为了面试,还有更深层的意思!

学习JAVA为何需要学习Java虚拟机答案当然不是为了面试,还有更深层的意思!

发布时间:2018年11月8日       已帮助: 923 人       来源:上海达内教育

许多人都是一样的,刚开始接触Java虚拟机的时候原因只不过是因为面试需要才会用到,也就硬着头皮看看。所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试。但经过了几年的学习和实战,发现其实学习虚拟机并不仅仅只局限于面试,而在于更深入地理解Java这门语言,以及为未来排查线上问题打下基础。

image.png


先聊聊第一个观点:学习Java虚拟机能深入地理解Java这门语言。对于刚刚工作一两年的朋友来说,各个API都没用熟,自然不会去深入研究Java中的各种细节。但对于工作了三年以后的朋友来说,很多时候你要解决一个问题必须深入到字节码层次去分析,你才能得到准确的结论,而字节码就是虚拟机的一部分。


例如我们常用的布尔型Boolean,我们都知道它有两个值,true和false。但你们知道其实在运行时,Java虚拟机是没有布尔型Boolean这种类型的。Boolean型在虚拟机中使用整型的1和0表示。


例如我们都知道类路径和类名是确定一个类,但事实上并不是这样。或者说,我们前面说的结论只是表面上的。如果深入到虚拟机层面来说,类加载器、类路径、类名才唯一决定一个类。也就是说,如果两个不同的类加载器它们加载同一个class类文件,那这两个类加载器加载的类就是不同的。


类似这样的例子还有很多。学Java学到了这个程度,如果你不懂虚拟机的一些基础知识,那么你就很难深入理解一些细节。


接着我们来聊聊第二个观点:学习虚拟机是为线上排查问题打下基础。我们知道我们一个Java应用部署在线上机器上,肯定时不时会出现问题。除去网络、系统本身问题,很多时候Java应用出现问题,就是Java虚拟机的内存出现了问题。要么是内存溢出了,要么是GC频繁导致响应慢等等。


那如何解决这些问题呢?首先,你必须学会看懂日志吧。那么你就必须要看得懂GC日志,这是Java虚拟机内容的一部分。你看懂了GC日志,那么你就得明白什么是年轻代、老年代、永久代、元数据区等,这些就是Java虚拟机的内存模型。你懂了Java虚拟机的内存模型,那你就得知道Java虚拟机是如何进行垃圾回收的,它们使用的垃圾回收算法是怎样的,它们有何优缺点。接下来就是各种垃圾回收器的特性。


你看,这一切东西都是相关联的。你想要解决线上的Java应用崩溃问题,那么你就必须学会GC日志。要看懂GC日志,就必须学习Java虚拟机内存模型。要看懂Java虚拟机内存模型,你就要学会垃圾回收机制等等。


细想起来学习Java虚拟机并不只是为了面试而去学习的,学习Java虚拟机对自身将来在实践中和突破都是用很大的帮助,所以不要再抱着为了面试而去学习Java虚拟机啦,努力学习Java让你将来的路变得更好更长远。


以上就是上海达内教育培训学校小编为您整理学习JAVA为何需要学习Java虚拟机答案当然不是为了面试,还有更深层的意思!的全部内容,更多精彩请进入编程语言栏目查看。


声明:如本网转载内容侵犯了您的权益,请致信liliping#tuguow.com(将#改成@),我们将及时处理。
预约免费试听课
预约试听
隐私政策