为什么要学习Java虚拟机?,【设计思想解读开源框架】

例如,我们都知道类路径和类名只确定一个类,但情况并非如此。换句话说,我们刚刚得出的结论是肤浅的。如果深入虚拟机级别,类加载器、类路径和类名称是唯一确定类的类。也就是说,如果两个不同的类加载器加载同一个类文件,则由两个类加载器加载的类是不同的。

有很多这样的例子。学习Java到这个程度,如果你不了解一些虚拟机的基本知识,那么你将很难理解一些细节。

然后我想谈谈我的第二点:学习虚拟机是为解决在线问题奠定基础。我们知道我们的一个Java应用程序部署在一个在线机器上,而且必须时不时地出现问题。尽管存在网络和系统问题,Java应用程序经常遭受Java虚拟机中的内存问题。内存溢出或GC经常导致响应速度慢等。

如何解决这些问题?首先,你必须学会阅读日志。然后,你必须了解GC日志,这是Java虚拟机内容的一部分。如果您了解GC日志,那么您必须了解什么是年轻一代、老一代、永久一代、元数据区域等等。这些是Java虚拟机的内存模型。如果您了解Java虚拟机的内存模型,您将知道Java虚拟机如何进行垃圾收集,它们使用的垃圾收集算法,以及它们的优点和缺点。其次是各种垃圾收集器的特点。

你看,所有这些都是相关的。如果要解决Java应用程序崩溃的问题,必须学习GC日志。要理解GC日志,必须学习Java虚拟机内存模型。要了解Java虚拟机内存模型,需要了解垃圾回收机制等。

说到为什么我要学习虚拟机,我想谈谈我为什么要写这个专栏。

也许在其他人眼中,虚拟机市场上的数据已经非常丰富。对于理论类型,我们可以看到周志明教授对Java虚拟机的深刻理解。对于实战类型,我们可以看到葛艺明老师的“实际Java虚拟机”。我似乎没有任何理由再写同样的东西,而且在写作上会有很多重叠。起初我是这么想的,但后来我发现我对一些知识点有自己的理解,希望和大家分享。虽然不可避免地会有一些重叠,但写作思路不同,对于不同的群体,意义自然会有所不同。

与对Java虚拟机和实际Java虚拟机的深入理解相比,我应该写得更清楚,更容易理解。本专栏将以逻辑方式编写,即,从源代码、字节码、机器代码、加载到内存、垃圾收集的角度,讨论其中涉及的所有知识。这种方法相对更为合理,可以将所有知识点串联起来。希望所有的知识点都能够以逻辑的方式结构化,这样每个人都能更好地理解,这样初学者不仅能够知道这件事,而且知道为什么这样做。

如何快速更新自己的技术积累?

  • 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
  • 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
  • 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
  • 学习以后不知道有没有学成,则可以通过面试去检验。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

4)]

[外链图片转存中…(img-iHrL6c8G-1630938118916)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值