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

#我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙

作者:瓶子君

不知不觉做Java开发已经两年多了,《深入理解Java虚拟机》第二版是我很早就买的书,大多数时间也一直放在我的工作桌上。想要学习一门语言的话很简单,掌握基本的语法和编程思想就可以上手工作了;但是想要深入理解和掌握一门语言必须得下苦功夫才可以,而这本书就是帮助你打开Java世界大门的钥匙。

说起这本书,必须讲一个不得不提的小故事。当年有幸跟一位大牛架构师邻桌而坐,而我每天早早去到公司学习,那会正在看这本书,那位大牛便跟我打了个赌,要是我当年能看完那本书(当时应该是十一月初的样子)他就再送我十本技术书,我信誓旦旦地回答到:”这还不简单吗,还有将近2个月的时间呢。”哎,没想到最后真的没看完,也就遗憾错失了大牛的送书,想来真是惭愧。

除了第一部分关于Java整个体系的梳理,本书还讲了4大部分的内容,每一部分都很精彩。自动内存管理机制的开篇第一句话就令人印象深刻,Java与C++之前有一堵由内存动态分配和垃圾收集技术围城的高墙,“墙外的人想进去,墙里的人想出来”,很是生动形象。

第二部分重点讲内存分配和垃圾回收,跟日常开发工作密不可分,因为实际中也会经常碰到OOM的情况,如果真的深入了解这些原理,在真正碰到问题去分析内存快照的时候也会比较迅速准确地定位到代码的问题。

第三部分虚拟机执行子系统,解决了我刚学习Java时一个很大的困惑,就是我们的代码到底是怎样去运行,属性和方法怎样去工作,通读下来这一部分给了我不少启发,也会在平时的编码过程中去想一下这个事情,偶尔还能写出更加精彩的代码。

第四部分程序编译与代码优化,正如书中所说,“对效率的追求应该是每一个程序员天生的坚定地信仰”,该章介绍了Java是怎样处理这个事情的,而我从中更多的学到了开发者设计这些的编程思路和思想。

第五部分高效并发,是我最喜欢的一部分,对于Java中的并发虽不是特别全面的介绍,但是对于一些并发关键字、语言层面的并发设计是很少可以从其他地方看到这么精彩的解读,已经拿来拜读好多次。

这本书不仅用通俗易懂的语言去讲明了Java虚拟机世界的知识,还在很多章节手把手教你用工具来自己调试,十分难得。书的整个目录体系十分清楚,各个部分的简介能够准确地介绍这部分的大体内容,是一个很好的设计。章节和小节标题意思鲜明。最后随书的附录也是很有用的工具。总之,真是一本不可多得的好书。

好的书读来神清气爽,又能学到知识。听说《深入理解Java虚拟机》已经出第三版了,增添了不少内容,一定要找机会好好拜读一番,相信对虚拟机的理解又可以前进一大步,希望每一个Java开发都能看到这么好的书。

推荐阅读

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

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

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

你与世界

只差一个

公众号

相关文章:

  • 学AI哪家强?2019全球排行清华第1,北大第2
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • 华为、阿里等知名公司年终奖发了多少?
  • 2020 云原生 7 大趋势预测
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • 给平庸程序员的12条建议
  • 华章新春献礼 扫码免费领书
  • 编程语言书单(Java核心技术篇)
  • ​人工智能书单(数学基础篇)
  • 中国医院需要什么样的数据中台?
  • 人工智能书单(机器学习理论篇)
  • 智能时代书单
  • 人工智能书单(机器学习实践篇)
  • 人工智能书单(图像处理与计算机视觉篇)
  • 立春好消息:华章图书持续霸榜京东、当当计算机畅销新书榜!
  • 分享一款快速APP功能测试工具
  • [译]前端离线指南(上)
  • C学习-枚举(九)
  • java8 Stream Pipelines 浅析
  • Java多态
  • Markdown 语法简单说明
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PHP 的 SAPI 是个什么东西
  • ReactNative开发常用的三方模块
  • Redis 懒删除(lazy free)简史
  • vue学习系列(二)vue-cli
  • windows-nginx-https-本地配置
  • yii2中session跨域名的问题
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (理论篇)httpmoudle和httphandler一览
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (生成器)yield与(迭代器)generator
  • (四)Linux Shell编程——输入输出重定向
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)Sublime Text3配置Lua运行环境
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .libPaths()设置包加载目录
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • @private @protected @public
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • []T 还是 []*T, 这是一个问题
  • [2023-年度总结]凡是过往,皆为序章
  • [Android 13]Input系列--获取触摸窗口
  • [C puzzle book] types
  • [C# 网络编程系列]专题六:UDP编程
  • [C++]四种方式求解最大子序列求和问题
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [Excel VBA]单元格区域引用方式的小结