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

#我与Java虚拟机的故事#连载11: JVM学习之路

作者:冷血之心

做为一名优秀的Java工程师,岂能不懂强大的Java Virtual Machine?巧逢周老师的《深入理解Java虚拟机-JVM高级特性与最佳实践》第三版问世,我也来分享下我与JVM的故事吧。

接下来,我按照时间顺序来对介绍下自己的JVM学习之路。

学生时代:

在刚开始学习Java的时候,最开始有一个很模糊的概念,简单知道通过Java虚拟机可以实现“一处编写,多处执行”的功能。但是,因为是刚刚处于Java入门阶段,总感觉JVM是一个很高端的概念,基本上接触不到,只知道安装一个JDK,我的“Hello World”即可跑起来。

在学生时代,参加校园招聘的时候,对于JVM依然还是一个很模糊的概念。为了应对面试官来自灵魂深处的拷问,不得已只能去各大网站,浏览各大博客,来学习JVM相关的一些知识点。零零碎碎的大概知道了一些内存分配、堆内存和栈内存、以及一些垃圾回收算法。那段时间真的很痛苦,因为这些概念都是一些很模糊的概念,并没有任何实战经验,在面试中全凭记忆来将知识点背诵出来。至于说一些内存调优的命令更是死记硬背(这里,手动后悔没能早点遇到周老师的优秀书籍!!!)好在,凭借着自己不错的记忆力,我依然在校招中斩获了一些优秀公司的Offer,从此我对JVM的理解也迈入了实战阶段。

工作初期:

工作之后的我,有了无数的实战机会,对于JVM的理解也逐渐加深。菜鸟在工作中还是会经常遇到JVM的问题。记得有一次,新上了一个服务,但是这个服务有点小奇怪。该服务间隔一段时间,比如说8天或者10天的就会出现内存溢出,导致服务崩溃的现象。做为菜鸟的我也是操碎了心,各种查阅资料,检查代码,排查解决。

不得不说,正是这次艰难排查JVM内存溢出的问题,使得我和周老师的《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书相遇。我记得是在一个博客中,有人推荐说这本书是目前国内关于JVM最优秀,讲解最深刻的一本参考书籍了。

久旱逢甘霖,必须买一本。买到之后,就迫不及待的看了一遍又一遍。真是相见恨晚呀,我关于JVM知识点的疑惑几乎都可以详细的在本书中得到解答,包括来自面试官的灵魂拷问以及实际工作中的内存调优实战。

Java技术进阶之后:

有了周老师的帮助,我的Java技术水平有了一个本质的提升。关于JVM有了更加清晰的认识,通过不断的研究学习这本书,我对于目前线上服务的内存特别敏感。对于各个垃圾收集器的使用也很熟练,有事没事的就去看看线上服务的垃圾回收情况。对于jinfo、jstack、jmap以及jstat等内存调优命令也是比较熟悉,再也不是曾经那个一无所知的懵懂少年了。

周老师的《深入理解Java虚拟机-JVM高级特性与最佳实践》第三版即将开卖,看了目录之后,感觉在第二版的基础上进行了很多更新,结合了当前最新的JDK12,给我们讲解全新的JVM相关特性与技术,带领我们与时俱进,真正做到了实战与技术的相结合~

总结:

毫不夸张的说,这本书是Java开发者必备的技术图书,也是我们大多数同学的JVM启蒙书籍,这本书使我们更加系统的接触到了JVM相关的特性与知识。这么一本优秀书籍,我想第三个版本也必将大卖,希望我们都可以人手一本,学习新的技术。

推荐阅读

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

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

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

你与世界

只差一个

公众号

相关文章:

  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • 机器学习入门必读:6种简单实用算法及学习曲线、思维导图
  • 什么是折线图?怎样用Python绘制?怎么用?终于有人讲明白了
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • 小程序三周年:超8000亿交易额,商业生态正当时
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • 新手学Python, 如何从入门到入土变为从入门到快速上车?
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • 沿用70多年的经典数据可视化方法,如何用Python实现?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • 学AI哪家强?2019全球排行清华第1,北大第2
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • 华为、阿里等知名公司年终奖发了多少?
  • 2020 云原生 7 大趋势预测
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Android优雅地处理按钮重复点击
  • Docker入门(二) - Dockerfile
  • Mysql数据库的条件查询语句
  • react 代码优化(一) ——事件处理
  • Redis字符串类型内部编码剖析
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue学习系列(二)vue-cli
  • 初识 beanstalkd
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 一起参Ember.js讨论、问答社区。
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • (10)STL算法之搜索(二) 二分查找
  • (3)(3.5) 遥测无线电区域条例
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (全注解开发)学习Spring-MVC的第三天
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (一一四)第九章编程练习
  • (转)Oracle存储过程编写经验和优化措施
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .a文件和.so文件
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net web项目 调用webService
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net6使用WebSocket与前端进行通信
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @Valid和@NotNull字段校验使用
  • [ C++ ] STL---string类的模拟实现
  • [ linux ] linux 命令英文全称及解释
  • [20170728]oracle保留字.txt
  • [BJDCTF2020]The mystery of ip1