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

#我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM

作者:勇气

我是一名测试工程师,第一次听说 JAVA 虚拟机,还是刚刚参加工作时,从开发的口中听到,当时自身对Java 一知半解,更难理解 JVM ,当时痛下决心,开始疯狂的学习 Java,学习完 Java 以后,陆陆续续地做了自动化开发相关工作。开始沾沾自喜于自己的进步,终于实现了从功能测试到自动化测试的转变。这种情况过了一年,突然发现自己的职业发展遇到了瓶颈,当时也许是年轻,归结于公司环境不适合施展自己的抱负,于是在2017年年底开始筹划跳槽。

当时自己的跳槽想法非常准确,必须要找一家互联网大型公司,还有就是要离家近,我住在北京亦庄京东大厦旁边,所以最心仪的公司莫过于京东,投递简历不久接到了京东金融(现在已改名京东数科)的面试邀请,当时一面有两位面试官,针对 Java 语言这里,首先问了 Java  类库等一些基础面试问题,因为自己准备的还算充分,回答的还算尽如人意,这时一位面试官问了叫我至今难忘的一个面试问题,“请您给我说下类的生命周期!”,当时无知的我竟然第一想法以为只是问我  new 对象,现在想想,简直羞于面对自己,面试讲究个一鼓作气,这个面试题回答的非常不好,后面的回答也发挥不够稳定,直接影响了自己的最终面试成绩,毫无疑问,第一次的面试只能是铩羽而归。

回去以后开始复盘自己的第一次面试经历,觉得自己只是了解 Java  基础,但是不够深入,从网上看了一些关于 JVM 的介绍,不够系统,对于小白来说也不够友好,于是从豆瓣上看到了这本学习JVM必读的书《深入理解 Java 虚拟机(第二版)》,拿到这本书以后,认真的拜读了关于类加载机制部分,不夸张的说,读完之后深感自己的无知。从那时起,我才真正的开始理解 new 的真正含义,并不是一句轻飘飘的新建对象。它会被分配一个堆内存,一个类还需要经过“加载-验证-准备-解析-初始化-使用-卸载“这个生命周期,而我知道的  new  只是在使用这个阶段。很快具备初级绝世武功秘籍的我,开始了第二次JD 求职之旅。

不出所料,面试测试开发工程师的时候,依然问到了 JVM 部分,因为自己这次有所准备,回答出了 80%。最后很惊喜 获得了心仪的 offer(最终阴差阳错,还是没去JD ,因为等待周期过长,最后去了金融公司)。

现在这本小蓝已经成为了我的必备读物,每每遇到测试出现的代码问题,就默默地拿出来拜读,每次拜读都会有新的收获。近年来Java 的新版本,Java8、Java9.....一个个接踵而来,新特性层出不穷,而对于新特性的底层影响,对我而言完全是一片红海,得知第三版已经悄然而至,重新燃起我综合学习的满腔热忱,希冀第三版的丰富内容,决定自己不在犹豫,买它!!!

推荐阅读

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

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

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

你与世界

只差一个

公众号

相关文章:

  • 什么是机器学习?有哪些应用?终于有人讲明白了
  • TIOBE 1 月编程语言排行榜:C 语言再度「C 位」出道!
  • 新书推荐 | 数据流机器学习:MOA实例
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • 2020大风口!什么是图神经网络?有什么用?终于有人讲明白了
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • 机器学习入门必读:6种简单实用算法及学习曲线、思维导图
  • 什么是折线图?怎样用Python绘制?怎么用?终于有人讲明白了
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • 小程序三周年:超8000亿交易额,商业生态正当时
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • 新手学Python, 如何从入门到入土变为从入门到快速上车?
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • 沿用70多年的经典数据可视化方法,如何用Python实现?
  • 网络传输文件的问题
  • AngularJS指令开发(1)——参数详解
  • CentOS6 编译安装 redis-3.2.3
  • flask接收请求并推入栈
  • js算法-归并排序(merge_sort)
  • rabbitmq延迟消息示例
  • SpingCloudBus整合RabbitMQ
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue数据传递--我有特殊的实现技巧
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 什么软件可以剪辑音乐?
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 小程序01:wepy框架整合iview webapp UI
  • 译自由幺半群
  • elasticsearch-head插件安装
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 昨天1024程序员节,我故意写了个死循环~
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • $.ajax()
  • (11)MATLAB PCA+SVM 人脸识别
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (二)JAVA使用POI操作excel
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (简单) HDU 2612 Find a way,BFS。
  • (转)为C# Windows服务添加安装程序
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core 依赖注入的基本用发
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net专家(高海东的专栏)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • ?php echo ?,?php echo Hello world!;?
  • [ NOI 2001 ] 食物链
  • [BT]BUUCTF刷题第4天(3.22)
  • [BUG]Datax写入数据到psql报不能序列化特殊字符