当前位置: 首页 > 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核心技术篇)
  • ​人工智能书单(数学基础篇)
  • 中国医院需要什么样的数据中台?
  • 人工智能书单(机器学习理论篇)
  • 智能时代书单
  • 人工智能书单(机器学习实践篇)
  • 人工智能书单(图像处理与计算机视觉篇)
  • 立春好消息:华章图书持续霸榜京东、当当计算机畅销新书榜!
  • 2019年如何成为全栈工程师?
  • crontab执行失败的多种原因
  • echarts的各种常用效果展示
  • IDEA常用插件整理
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java教程_软件开发基础
  • Laravel 菜鸟晋级之路
  • nginx 配置多 域名 + 多 https
  • Vue.js 移动端适配之 vw 解决方案
  • vue总结
  • 阿里云前端周刊 - 第 26 期
  • 订阅Forge Viewer所有的事件
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 老板让我十分钟上手nx-admin
  • 如何用vue打造一个移动端音乐播放器
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 数据科学 第 3 章 11 字符串处理
  • Java数据解析之JSON
  • ​如何在iOS手机上查看应用日志
  • (11)MSP430F5529 定时器B
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (第二周)效能测试
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (力扣题库)跳跃游戏II(c++)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十)c52学习之旅-定时器实验
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转) 深度模型优化性能 调参
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [20150629]简单的加密连接.txt
  • [Android]使用Android打包Unity工程
  • [Angular] 笔记 9:list/detail 页面以及@Output