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

#我与Java虚拟机的故事#连载14:挑战高薪面试必看

作者:Mr.Tang

Java在编程语言排行榜上排名很靠前,用的地方比较多,领域也比较广。在找工作方面,即使在资本寒冬,Java岗位招聘依然有很多,平均工资一般也还可以。不过很多岗位,都是小1W,如果Java工程师工资想超越2W,面试都是会问JVM相关的问题。如果真的工资比较高了,可能会是部门或者项目组里技术大神,项目运行出问题时,要能定位出问题并解决问题。

JVM的确生涩难懂,学习资料相比Java应用遍地开花会少很多,学习路径有两种,一种是买像《深入理解Java虚拟机》这类书,还有就去啃Oracle官方文档。书籍方面,在《深入理解Java虚拟机》出现以前,市面上真的没有什么特别好的JVM相关书籍,不推荐《深入理解Java虚拟机(第二版)》或者更早版本,是因为从JDK1.7之后变化还是蛮大,很多企业现在用的是1.8,而且现在JDK出到了13,JDK14也快出来了,又有细心的小伙伴会发现,现在JVM的垃圾回收和hotSpot都有调整。《深入理解Java虚拟机( 第二版)》很经典,很多东西都很能用(很大部分原理还是没变的),但是有一部分晦涩难懂的东西可能理解了半天,发现技术已经被淘汰了。

既然出了《深入理解Java虚拟机 第三版》,那还是给大家推这本书,毕竟自己看Oracle文档,没理清头绪可能就放弃了。接着第二版的期待,期待第三版,照样是一本实用的工具书,这样就不用自己去啃Oracle官网。

现在说说看《深入理解Java虚拟机 (第二版)》对我个人的影响。没买这本书的时候,整天飘在框架或者库上,觉得挺充实的,直到有一次看大神分析线上应用的时候分析了JVM日志,才觉得大神说的好有道理,但是听得一脸懵,感觉要想变成大神,的确需要对JVM多了解,绕不过这个坎,最后就买了一本。买回来之后,翻开第一章看着都还好,只是有点无聊,但往后看,容易犯困,就扔下了。

工作中会遇到一些JVM out of memory,于是有硬起头皮看,后来就会看JVM日志了,后来发现面试官经常会问JVM回收机制问题,后面就把JVM回收相关的问题自己仔细看了下,面试就不虚了。

不过这几年JVM回收面试答案就不一样了,JDK1.8垃圾回收机制,跟以前的不一样了,这本书里讲的东西不能搬着去面试了,不然容易被认为不关注技术发展。

这本书就像工具书,如果真对JVM感兴趣,或者要准备挑战高薪了,可以硬着头皮从头看到尾,都理解透彻。不然可以边学边用,边用边看,实际有问题再看书中问题分析方法,或者看实战大神分析过程,再回去理解书,到时候会对JVM有系统的认识。当然,不管花费几个月,最好还是把书看完,这样以后面试的时候,心不需,工作中遇到问题,也不用像个文盲看着八股文,束手无策。也许书中知识有落伍的地方,但是分析的方法,万变不离其中!这本书学的时候很费神,但是学完了,收益也匪浅。

推荐阅读

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

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

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

你与世界

只差一个

公众号

相关文章:

  • 新手学Python, 如何从入门到入土变为从入门到快速上车?
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • 沿用70多年的经典数据可视化方法,如何用Python实现?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • 学AI哪家强?2019全球排行清华第1,北大第2
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • 华为、阿里等知名公司年终奖发了多少?
  • 2020 云原生 7 大趋势预测
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • 给平庸程序员的12条建议
  • 华章新春献礼 扫码免费领书
  • 编程语言书单(Java核心技术篇)
  • ​人工智能书单(数学基础篇)
  • 中国医院需要什么样的数据中台?
  • 人工智能书单(机器学习理论篇)
  • 2017前端实习生面试总结
  • CentOS 7 防火墙操作
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • python学习笔记-类对象的信息
  • underscore源码剖析之整体架构
  • 记一次和乔布斯合作最难忘的经历
  • 前端之Sass/Scss实战笔记
  • 用Python写一份独特的元宵节祝福
  • 正则表达式
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​水经微图Web1.5.0版即将上线
  • ​业务双活的数据切换思路设计(下)
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #define用法
  • $jQuery 重写Alert样式方法
  • $L^p$ 调和函数恒为零
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (动态规划)5. 最长回文子串 java解决
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (南京观海微电子)——COF介绍
  • (转)Sublime Text3配置Lua运行环境
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET中GET与SET的用法
  • @angular/cli项目构建--Dynamic.Form
  • @html.ActionLink的几种参数格式
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [AIGC] Kong:一个强大的 API 网关和服务平台