公司网站建设的作用,网站建设网上商城心得体会,wordpress 代码页面,游戏外包公司第28章-终结篇章
经过前面27章的介绍#xff0c;终于把Java虚拟机#xff08;hotspot#xff09;的运行流程和实现细节都走完了#xff0c;相信能让读者对Java的运行机制和设计原理有一个全新的认识#xff0c;众观全网及书籍#xff0c;似乎没有一人这么系统的逐行对ho…第28章-终结篇章
经过前面27章的介绍终于把Java虚拟机hotspot的运行流程和实现细节都走完了相信能让读者对Java的运行机制和设计原理有一个全新的认识众观全网及书籍似乎没有一人这么系统的逐行对hotspot源码进行解析的如果有请读者指出我也去学习下哈哈。当然由于本人能力所限加之是个人编写且时间比较仓促一个月出头内容中难免会出现一些错误也请读者指出如经验证确实有误定会及时修改并加以公布。同时大家的点赞与关注就是我更新的动力源泉谢谢
从本书毕竟这些内容不做出版但实在想不到别的定义了暂且称为书了中我们至少可以学到以下内容
1Java虚拟机的运行流程和实现细节
2Java虚拟机的设计原理
3Java虚拟对内存的区域划分堆、栈、程序计算数、元空间、本地方法栈面试中常问
4Java内存、虚拟机内存、内核内存之间的关系
5Java对象在Java虚拟机中的映射对象InstanceKlass普通类、InstanceMirrorKlassX类的Class类
6内存在虚拟机中怎么分配底层malloc、mmap等
7Java虚拟机对内存的管理主要通过链表将内存块管理起来
8Java线程模型Java线程的创建及与操作系统线程的创建和绑定
9虚函数表vtable
10itable
11卡表
12其他
这里抛出几个问题 问每个Java类定义在虚拟机C环境中是同样对应一个类定义还是一个对象
答Java类定义在C中对应的是一个对象。
问对应哪个对象
答普通类定义对应InstanceKlass对象Class类定义对应InstanceMirrorKlass对象。
问为什么不直接对应类而对应对象
答因为虚函数表在C中每个带virtual函数的类都有一个虚函数表如果Java类与C的类一一对应那么会存在很多虚函数表因虚函数表是要占用内存空间的这个内存到时是非常可观的所以Java类在C中表现为对象这就可以达到共用虚函数表的效果节省空间。
写这本书的意义
近二十年Java开发语言使用太广范了又是开源的入行的人越来越多要求也越来越高当然技术水平也是参差不齐的。随之而来的也有各种各样封装好的框架可以使用这就导致有些人写了10几年甚至20年也不知道底层原理换个框架就玩不转有些人三五年就搞透彻了后面换什么框架都得心应手。前者好似练了10几年传统武术套路的人到头来一场空后者更像是练过九阳神功亦或是打通任督二脉的人即厉害学习其他的“功夫”也快。
那么编程技术中什么是九阳神功呢当然是底层原理包括计算机组成原理、操作系统、编译原理、算法有一定概念就行、数据结构等要了解上面的知识又需要汇编语言、C/C语言来打辅助所以这些都是基础一但学通就可以打通任督二脉。
对于Java编程者来说Java虚拟机就是底层何谓虚拟机自然是在真正计算机的基础上虚拟一套仿真计算机那必须是要具备真实计算机的功能要虚拟出这么一套东西自然需要对上面所提的九阳神功技术栈非常了解那么读者能把这套虚拟的产品实现源码读明白自然也就有一定九阳神功的功力了。真正做到知其然而知其所以然遇事不决时底层功能就显得非常重要毕竟网上搜索答案十之有九是无用的还有一成需要自行分辨做技术是这样做人也是这样否则很容易被淹没在这浩瀚的信息海洋里。所以这本书的意义就在于给喜欢研究底层人打基础同时可以帮助想研究hotspot源码但又不知道怎么开头的人一些帮助还可以帮助一些在研究过程中碰到问题又没有人咨询遇到阻碍进行不下去了的人。当然有人会说Java语言未来可能会被其他语言代替这个不假但是JVM这一套理论与实现短期内是不可能被替代的近几年出现的很多新的语言都是在JVM的基础上执行的再退一步讲就算JVM没了其他类似的解释器比如Python/JS的解释器实现原理也都差不多所以不要局限于某种语言原理很重要
本书未讲部分
1类的加载过程后续一定会讲
2Java虚拟的执行引擎会部分讲
3GC实现细节会抽一个GC收集器来讲
4编译不讲对大部分开发者来说意义不大知道概念就行
5Java优化技术会讲一点
6Java高级技术的底层实现原理锁、volatile、LockSupport、Unsafe等知识
这里列出的是五个大的模块后面的专题文章中会选出一些来讲但是短期内不会全讲一来我不是专门搞虚拟机研究的我也要工作否则要饿死二来为了做到雨露均沾后面要出一些其他技术类的文章。
结束语
2024年春节前就封版了不再做其他更新了年后还会陆续更新其他源码内容比如redis、Rocketmq、kafka、mybatis等等同时也会对Java高级编程知识抽出一些专题来讲当然短期内不会针对初学者的技术应用内容进行编写和发布这些初学内容网上随便搜索很多的我更偏向于底层原理的内容输出专注精品内容的文章。新的一年里预祝大家春节快乐事业有成同时祝福所有职业人提升自升价值与竞争力摆脱加班命运