当前位置: 首页 > news >正文

#我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道

作者:Gavin

开篇

作为一个年近三十的老Java码农,不可避免地要学习Java虚拟机方面的知识,突闻《深入理解Java虚拟机:JVM高级特性与最佳实践》出了第3版,喜极而泣,提笔临表。

江湖菜鸟

当年我还在学校,还是一只小菜鸟的时候,懵懵懂懂地进入了Java的世界,初学SSH框架写出了人生第一个项目,一个论坛仅仅有登录注册、帖子列表、发帖回复、删除编辑的功能,那时候觉得Java如此神奇和不可思议。

初出茅庐

慢慢的,SSH在我手上如同一把梭,玩得溜的飞起,后来又接触了mybatis、SpringMVC,以及 Struts2爆出致命漏洞又是另外一个故事了。当我以为我SSH大功告成,各种CURD不在话下,仿佛深山老林得遇九阳神功,苦练十年,正准备下山除魔卫道大展拳脚。

当头棒喝

我也迎来了第一次正式的JAVA面试,前面和面试官都聊得非常到位,做过一些实战项目,进入公司基本能上手开发简单功能,数据结构、计算机基础都不错,JS、CSS、HTML也都会用,最后将要结束的时候,面试官问了一句,JVM你应该知道吧?垃圾回收算法了解吗?

我瞬间慌了,JVM好像是Java虚拟机,垃圾回收听过,不就是回收对象吗?还有什么算法?

瞬间自己紧张了起来,一顿 嗯…啊…,支支吾吾半天,绞尽脑汁把自己知道的那么一点点的JVM知识都挤出来了。

面试官明显看出了我的紧张,也看出了我的空洞,仿佛一个警察掌握了确凿的事实证据,而我却是那个坐在铁椅上带着手铐的小偷。

面试官转而微微一笑,说:没事别紧张,才刚毕业,没关系的。

但是这一刻,在我眼里却像一个警察微笑的对我说,没关系,坦白从宽,抗拒从严,供出你的同伙,我争取帮你减刑。

走火入魔

回来以后,疯狂地找JVM的学习资料,什么引用计数法、根路径搜索、双亲委派、内存模型、垃圾回收,再到后面的对象头、栈帧结构…太多了!太乱了!瞬间感觉JVM如浩瀚烟海,连绵不绝,仿佛一眼望不到头。

JVM的大海,让我迷失了,谁能在这苦海度我一程。

回头是岸

突然看到网上有一篇帖子推荐了《深入理解Java虚拟机:JVM高级特性与最佳实践》,被奉为JVM必读著作。

我如同一个深中玄冥神掌,寻遍神医,病之将死之时,有人说你往前面去,前面有一种九阳神功能救你的命。

我立马通过那个神秘的链接,下载了影印版的PDF,我如饥似渴,如狼似虎的栽进JVM的海洋,而《深入理解Java虚拟机:JVM高级特性与最佳实践》就是那把钥匙,就是度我的那片独木舟。

再见江湖

后来的后来,还是没有进入这家公司,而是去了另外一家公司,而我也终于买到了纸质版的《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版。

再后来我依然在江湖中闯荡,所幸的是,我的头发还剩不少。

——纪念引导我进入JVM新世界大门的《深入理解Java虚拟机》

推荐阅读

《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

推荐语:这是一部从工作原理和工程实践两个维度深入剖析JVM的著作, 自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,大厂面试最佳参考手册,进阶架构师必读、Java优化神书,这些标签成就了它成为原创计算机图书领域不可逾越的丰碑。

第3版在第2版的基础上做了重大修订,内容更丰富、实战性更强:根据新版JDK对内容进行了全方位的修订和升级,围绕新技术和生产实践新增逾10万字,包含近50%的全新内容,并对第2版中含糊、瑕疵和错误内容进行了修正。

你与世界

只差一个

公众号

相关文章:

  • Java异步编程并没有广泛使用起来,这是什么原因? (文末有福利)
  • 新书推荐 | Java核心技术 卷II 高级特性(原书第11版)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • 中台四杰与阿里往事
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • InfoQ 编辑部开年聊聊 2020 年值得关注的十大技术趋势
  • 达摩院十大科技趋势发布:2020 非同小可!
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • 新书推荐 | 深入浅出图神经网络:GNN原理解析
  • 新书推荐 | 现代机器人学:机构、规划与控制
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • 什么是机器学习?有哪些应用?终于有人讲明白了
  • TIOBE 1 月编程语言排行榜:C 语言再度「C 位」出道!
  • 新书推荐 | 数据流机器学习:MOA实例
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • 网络传输文件的问题
  • 时间复杂度分析经典问题——最大子序列和
  • 【Amaple教程】5. 插件
  • gf框架之分页模块(五) - 自定义分页
  • Java方法详解
  • Java基本数据类型之Number
  • Linux中的硬链接与软链接
  • quasar-framework cnodejs社区
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Redash本地开发环境搭建
  • redis学习笔记(三):列表、集合、有序集合
  • SpingCloudBus整合RabbitMQ
  • 漂亮刷新控件-iOS
  • Linux权限管理(week1_day5)--技术流ken
  • mysql面试题分组并合并列
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • #LLM入门|Prompt#3.3_存储_Memory
  • (02)vite环境变量配置
  • (2015)JS ES6 必知的十个 特性
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (23)Linux的软硬连接
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (ZT)一个美国文科博士的YardLife
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (学习日记)2024.01.09
  • (转)LINQ之路
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .net开发时的诡异问题,button的onclick事件无效
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Import注解详解
  • @JoinTable会自动删除关联表的数据
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解