当前位置: 首页 > 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成长之路
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CAP理论的例子讲解
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • express.js的介绍及使用
  • extjs4学习之配置
  • HTML中设置input等文本框为不可操作
  • Mybatis初体验
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue2.0项目引入element-ui
  • vue-cli在webpack的配置文件探究
  • 从伪并行的 Python 多线程说起
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 番外篇1:在Windows环境下安装JDK
  • 关于springcloud Gateway中的限流
  • 数据科学 第 3 章 11 字符串处理
  • 微服务框架lagom
  • 微信小程序:实现悬浮返回和分享按钮
  • Semaphore
  • #{}和${}的区别是什么 -- java面试
  • #在 README.md 中生成项目目录结构
  • $.each()与$(selector).each()
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (function(){})()的分步解析
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (转)详解PHP处理密码的几种方式
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET Remoting学习笔记(三)信道
  • .net 调用php,php 调用.net com组件 --
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @ModelAttribute 注解
  • [ajaxupload] - 上传文件同时附件参数值
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [CSS]浮动
  • [javaee基础] 常见的javaweb笔试选择题含答案
  • [OS] linux常见问题汇总
  • [RK3568 Android11] Binder通信整体框架