Hotspot源码解析-开篇

开篇

​ 接下来的一段时间,我将开始读取Hotspot源码,并输出源码解析文档。写这些文档的意义,一是为了加深自己的技术基础,二是为了分享技术,同时也为了大家一起探讨技术。所有的源码解析文档,都是以我个人的理解为基础,难免会出现一些问题,届时也希望大家发现指正,我将第一时间修改,另外写的不好,也不要喷,毕竟写这玩意,一不收钱,二不坑人,纯粹是为了技术交流。好了,废话不多说,言归正转。

前置知识

​ JVM顾名思义,就是虚拟出来的一个计算机,所以需要对计算机、操作系统等有一定的理解,当然也不要太在意,做开发的,原则上对计算机和操作系统多少都会有点认知的,我会尽量用Java程序员能懂的方式描述出来,下面列出一些前置知识要点:

1、C/C++语言

2、汇编语言

3、操作系统(这里主要是Linux)

4、计算机组成原理

说明

​ 关于源码解析文档怎么写,之前一直有两种想法,第一种是挑重点写;第二种是逐行解析,第一种怕缺失源码解析过程的连贯性,第二种篇幅又过多,过于冗余,所以还是两种结合着写吧,尽量做到既有连贯性,又不那么冗余。

了解Hotspot源码的意义

​ 从工程学角度讲,一个Java程序员,只要在JVM的基础上会使用对应的API解决日常工作中的问题就行,JVM创建的初衷就是为了使程序员可以花更多的时间处理自己的业务,而减少甚至完全消除对底层机器的认识,从这个角度讲,了解Hotspot的毫无意义。但是现实并非如此,随着Java语言的广范使用,且进入Java编程行业的人越来越多,业务也越来越复杂,对系统或服务调优的需求也逐渐增多,这就使得市场对Java编程人员的要求越来越高,开发人员为了面试、为了生活,技术上也越来越卷,10几年前,可能写个hello world就可以找到工作,现在不仅要会复杂业务,还要懂底层原理。从这个角度讲,了解Hotspot源码是很有必要的。至少了解后,你再也不用去背面试题了,也不会因为面试官对你背的题目做灵活面试的时候答不上来。在我看来了解源码更重要的意义,在于求证。我们历来受的教育大多是记忆型的,老师们经常会说,这个知识点大家记住就行,很少会引发学生的思考和提问。求证就是一个推导知识的过程,为什么是这样,可不可以是那样等,很多东西需要多多推导,多多求证,而不是死记硬背。当然,这不是叫大家过多的卷技术底层,除了兴趣爱好之外,这并没有太大的意义,纯属是资源浪费,内耗,我个人是呼吁大家别太卷了,多留点时间给生活、给家庭吧。

​ 近些年Java虚拟机技术在不断的优化和性能提升,这两年崭露头角的Graalvm就是一个代表,Graalvm为了提升性能把Java源文件直接编译成机器码,这样就省去了字节码这一层,性能理论上是有所提升的,但是同时也失去了Java本身的一些特性,比如反射、跨平台,至于这种改变到底是好是好坏,不予置评。

后续将通过抖音视频/直播的形式分享技术,由于前期要做一些准备和规划,预计2024年6月开始,欢迎关注,如有需要或问题咨询,也可直接抖音沟通交流。
在这里插入图片描述

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

多栖码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值