当前位置: 首页 > 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成长之路
  • [nginx文档翻译系列] 控制nginx
  • DataBase in Android
  • Git同步原始仓库到Fork仓库中
  • HTML中设置input等文本框为不可操作
  • input实现文字超出省略号功能
  • iOS编译提示和导航提示
  • JavaScript异步流程控制的前世今生
  • JAVA并发编程--1.基础概念
  • js
  • js中的正则表达式入门
  • laravel5.5 视图共享数据
  • Linux CTF 逆向入门
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • python docx文档转html页面
  • Selenium实战教程系列(二)---元素定位
  • Solarized Scheme
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • vue-cli在webpack的配置文件探究
  • 前端之React实战:创建跨平台的项目架构
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 原生js练习题---第五课
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 数据可视化之下发图实践
  • #stm32驱动外设模块总结w5500模块
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (第61天)多租户架构(CDB/PDB)
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)UDP基本编程步骤
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .“空心村”成因分析及解决对策122344
  • .Net MVC4 上传大文件,并保存表单
  • .Net 路由处理厉害了
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .Net 应用中使用dot trace进行性能诊断