迫于无人问津, 这真不是一篇关于手摸手实现 JVM 的教程

2021-02-03 10:59:42 +08:00
 DT37
起源:
为什么需要自己实现 JVM?
纸上得来终觉浅,只有自己写一遍才能更深刻的理解虚拟机工作原理.

为什么需要深入理解 Java 虚拟机的工作原理?
现实:
1.技术面试需要
2.薪资议价技能
自我:
1.跟同事朋友讨论 JVM 技术不经意间暴露出自己对虚拟机的深刻理解, 让同事朋友另眼相看.
2.自我实现的满足感.
3.在日新月异的技术环境下,掌握根本技能.

食用人群:
1.对 Java 虚拟机原理和实现感兴趣的开发者.
2.对解释器原理和实现感兴趣的开发者.
3.想找中小型项目练手的 Java 初学者或初中级开发者.
4.想阅读 Java 虚拟机规范但觉得内容枯燥的开发者.

食用地址:https://www.lanqiao.cn/courses/2849
九折优惠:SlCfnMsp (优惠码)
1233 次点击
所在节点    二手交易
18 条回复
xiaofan2
2021-02-03 11:45:00 +08:00
有什么亮点吗
jiom
2021-02-03 11:49:53 +08:00
迫于太穷 看到 89 我还是放弃了 哈哈哈哈
DT37
2021-02-03 12:59:02 +08:00
终于有人回复了, 有亮点, 学习的的过程中同时可以学习 vim
DT37
2021-02-03 13:02:30 +08:00
@jiom 具体的可以联系作者
https://www.guxingke.com/ 大佬的博客在这里
DT37
2021-02-03 13:03:50 +08:00
@xiaofan2 真的手摸手算亮点嘛?
pangleon
2021-02-03 13:43:38 +08:00
多少年前就用自己动手 XXX 系列图书了,JVM 用 GO 实现的,写的卖的都可以,你这个跟人家比不知道亮点在哪,价格还这个高
DT37
2021-02-03 14:14:31 +08:00
@pangleon 对啊, 很有道理. 为什么呢? 老哥要不试学一下, 不甜不要钱
jrtzxh020
2021-02-03 17:19:06 +08:00
写过 CURD 的前端可以学吗?
catsoul
2021-02-03 17:22:30 +08:00
是不是买了就会了,不会可不可以退(逃
DT37
2021-02-03 17:23:05 +08:00
@jrtzxh020 有 Java 开发基础,然后又兴趣研究的话可以玩玩. 可以先试学感受一下或者到这个库里面 https://github.com/guxingke/mini-jvm.git 可以先看看了解一下
DT37
2021-02-03 17:25:51 +08:00
@catsoul mark 等于会了 (逃 , 可以看看作者之前写的 https://github.com/guxingke/mini-jvm
DonaldY
2021-02-03 17:28:10 +08:00
已经写过 demo 了。。。。
DT37
2021-02-03 17:30:34 +08:00
@DonaldY 可以看看作者用 C 写的? https://github.com/guxingke/neojam
lewis89
2021-02-04 09:29:43 +08:00
@jrtzxh020 #8 可以,JVM 本身 并不难,字节码基本上就是在汇编的基础上去掉了寄存器,不优化或者 JIT 编译的话 实际上解析字节码非常容易,因为字节码没法直接操作寄存器,只要每一个栈帧维持一个操作数的栈就能实现解析字节码了 只不过效率低下罢了,然后复杂的一点的就是怎么用 C 操作原始类型或者用 C 实现一个动态的结构体 来保存 Java 对象
lewis89
2021-02-04 09:34:42 +08:00
@jrtzxh020 #8 动态开辟内存 来保存 Java 对象 本身也不复杂,无非就是读取 class 文件,根据对象的成员变量 malloc 对应大小的结构体,然后对齐内存,这样 cache 的时候方便,总而言之 如果只是实现一个单线程的字节码运行器,本身并不复杂,因为字节码模型真的不复杂..
jrtzxh020
2021-02-04 09:41:52 +08:00
@lewis89 谢谢大佬指导,虽然自己做前端的。但业余时间都会学习一下 java 。
DT37
2021-02-04 10:30:27 +08:00
@jrtzxh020 我只是搬运工啦, 可以了解学习一下, 增加一下自己的技术深度.
DT37
2021-02-04 10:35:24 +08:00
大佬通透, 直达本质.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/750845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX