作者:Gavin

开篇

作为一个年近三十的老Java码农,不可避免地要学习Java虚拟机方面的知识,突闻《深入理解Java虚拟机:JVM高级特性与最佳实践》出了第3版,喜极而泣,提笔临表。

江湖菜鸟

当年我还在学校,还是一只小菜鸟的时候,懵懵懂懂地进入了Java的世界,初学SSH框架写出了人生第一个项目,一个论坛仅仅有登录注册、帖子列表、发帖回复、删除编辑的功能,那时候觉得Java如此神奇和不可思议。

初出茅庐

慢慢的,SSH在我手上如同一把梭,玩得溜的飞起,后来又接触了mybatis、SpringMVC,以及 Struts2爆出致命漏洞又是另外一个故事了。当我以为我SSH大功告成,各种CURD不在话下,仿佛深山老林得遇九阳神功,苦练十年,正准备下山除魔卫道大展拳脚。

当头棒喝

我也迎来了第一次正式的JAVA面试,前面和面试官都聊得非常到位,做过一些实战项目,进入公司基本能上手开发简单功能,数据结构、计算机基础都不错,JS、CSS、HTML也都会用,最后将要结束的时候,面试官问了一句,JVM你应该知道吧?垃圾回收算法了解吗?

我瞬间慌了,JVM好像是Java虚拟机,垃圾回收听过,不就是回收对象吗?还有什么算法?

瞬间自己紧张了起来,一顿 嗯…啊…,支支吾吾半天,绞尽脑汁把自己知道的那么一点点的JVM知识都挤出来了。

面试官明显看出了我的紧张,也看出了我的空洞,仿佛一个警察掌握了确凿的事实证据,而我却是那个坐在铁椅上带着手铐的小偷。

面试官转而微微一笑,说:没事别紧张,才刚毕业,没关系的。

但是这一刻,在我眼里却像一个警察微笑的对我说,没关系,坦白从宽,抗拒从严,供出你的同伙,我争取帮你减刑。

走火入魔

回来以后,疯狂地找JVM的学习资料,什么引用计数法、根路径搜索、双亲委派、内存模型、垃圾回收,再到后面的对象头、栈帧结构…太多了!太乱了!瞬间感觉JVM如浩瀚烟海,连绵不绝,仿佛一眼望不到头。

JVM的大海,让我迷失了,谁能在这苦海度我一程。

回头是岸

突然看到网上有一篇帖子推荐了《深入理解Java虚拟机:JVM高级特性与最佳实践》,被奉为JVM必读著作。

我如同一个深中玄冥神掌,寻遍神医,病之将死之时,有人说你往前面去,前面有一种九阳神功能救你的命。

我立马通过那个神秘的链接,下载了影印版的PDF,我如饥似渴,如狼似虎的栽进JVM的海洋,而《深入理解Java虚拟机:JVM高级特性与最佳实践》就是那把钥匙,就是度我的那片独木舟。

再见江湖

后来的后来,还是没有进入这家公司,而是去了另外一家公司,而我也终于买到了纸质版的《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版。

再后来我依然在江湖中闯荡,所幸的是,我的头发还剩不少。

——纪念引导我进入JVM新世界大门的《深入理解Java虚拟机》

推荐阅读

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

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

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

你与世界

只差一个

公众号

#我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道相关推荐

  1. #我与Java虚拟机的故事#连载01:人在JVM,身不由己

    作者:叶志远 Java自上世纪90年代问世以来,以其优良的特性,逐渐占据了企业级开发的主流位置,并且日益强大的语言生态,更加巩固了它在编程语言排行榜上的地位. Java的快速发展,得益于支撑它运行的底 ...

  2. 05 Java 虚拟机.md

    前言 核心知识 1. 运行时数据区域 1. 程序计数器(线程私有) 2. 虚拟机栈(线程私有) 3. 本地方法栈(线程私有) 4. 堆 新生代 (Young Generation) 老年代 (Old ...

  3. 《深入理解java虚拟机》第2章 Java内存区域与内存溢出异常

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来. 2.1 概述 https://blog.csdn.net/q5706 ...

  4. 第1章 Java基本概念及环境配置——FAQ1.05 Java SE. Java EE和Java ME有什么区别?

    FAQ1.05 Java SE. Java EE和Java ME有什么区别? 答: 1.什么是Java SE? J2SE,便准版的Java平台是一个Java2的平台,为用户提供一个程序开发环境.这个开 ...

  5. 一个故事搞懂Java并发编程

    故事可能比较奇怪.有这么一个学校,里面有好多好多人,我们简单分成学生.老师.以及宿管阿姨.学校中间还有一个很奇葩的水果超市,里面有个仓库放着苹果.西瓜.橘子.来这个超市的人,一方面可以拿走水果吃掉,另 ...

  6. java虚拟机现状_深入理解java虚拟机的故障处理工具

    前言 本文主要给大家介绍的是java虚拟机的故障处理工具,文中提到这些工具包括: 名称 主要作用 jps JVM process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程 ...

  7. 【连载】Java笔记——是了解咖啡小可爱的第一周呢

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  8. 听故事彻底理解Java 并发

    最近在给别人讲解Java并发编程面试考点时,为了解释锁对象这个概念,想了一个形象的故事. 后来慢慢发现这个故事似乎能讲解Java并发编程中好多核心概念,于是完善起来形成了这篇文章. 故事可能比较奇怪. ...

  9. 利用java虚拟机的工具jmap分析java内存情况

    2019独角兽企业重金招聘Python工程师标准>>> 有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug ...

最新文章

  1. python安装poi第三方库_使用Python获取城市POI数据
  2. 一个springboot能支持多少并发_跑滴滴一个月能挣多少?-好不好
  3. 实现⼀个简洁版的promise
  4. XSS-Game level 12
  5. java版spring cloud+spring boot+redis社交电子商务平台(十七)上传文件
  6. java串口rxtx_Java串口操作RXTX
  7. 裁员潮,互联网寒冬的黑暗时刻
  8. Ant Design Vue中日期选择器中绑定后台获取的时间
  9. 使用ScanPort、SuperScan、Nmap进行端口扫描
  10. YX133数显模组 PD数显充电数据线,TYPE-C功率显示充电线方案 介绍
  11. studio无法重命名(can not rename root module)
  12. 背诵英语单词(你没看错)
  13. 什么是腾讯会议?腾讯云会议应用讲解
  14. 随机地图生成--自己的一次尝试
  15. 超级鹰解决点触验证码
  16. Application Server
  17. 怎么给Mongodb设置账号密码(跳坑版)
  18. 基于kubeadm 部署K8S1.22.3 踩坑
  19. 解决can not access a member of class xxx with modifiers ““问题
  20. 传出神经系统分为哪两类,传出神经的分类与功能

热门文章

  1. 基于Android平台的疫情小助手APP
  2. 什么是OCX控件?注册它都有哪些作用?
  3. 【微信技术-微信公众号】-------- 实现拍照或选择相册接口:wx.chooseImage的使用实例[JS-SDK]
  4. 科举制度在明代发扬光大
  5. java学习中级篇之多线程
  6. 基于STM32、OV2640及ESP8266的无线图传
  7. 橙光游戏html格式,关于橙光游戏的本地打包发布说明
  8. Android查看手机内部储存目录及数据库文件[转]
  9. 腾讯定位服务使用教程Android版
  10. 简谈FPGA比特流结构