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

#我与Java虚拟机的故事#连载18:JAVA成长之路

作者:邱保平

种子

记得大学的时候,我们C语言老师给我们展示过一张开发语言排名的图片,当时只是模模糊糊地记得排名第一的语言是 “Java”(flag),并不知道这个语言究竟有什么神奇之处,能够在短短几年内打败C/C++。虽说学校教学思想保守,并未开设Java课程,在校期间一直是C/C++陪伴着我,也曾担任ACM队主力。毕业面试时,遇到了一个技术面试官,面试时他说,你的C语言学的挺不错的,我们这边正好有个不错的C语言项目,不知道你感不感兴趣?结果我的回答却出人意料,甚至我自己都怀疑自己,我说:我想去做JAVA开发,我喜欢Java(flag=true)。面试官很震惊,不过又缓缓的笑着说,就这个理由?我答道:是的,就是这么简单。然后面试官对我说,会一门语言,其他语言就都会了,开发语言之间互通相似的。

发芽

入职后才了解到面试官是公司很厉害的JAVA专家(难怪面试时,不问C语言问题),CTO之下的第一人,他一人镇守整个南部地区,何况南部有广州和深圳2个IT大区,其他地区一般都是5-6个专家一起镇守。当一个人喜欢上一件事之后,时间总是过的飞快,3年间,我从小白到高工,头发稀少了,但期间斩获了一个某全国比赛第三名,此等战绩足以让我能够在整个IT行业行走自如无人拒绝。回去后,面试官和我说,当时他的眼光真不错。之后便跟着他做事,感受到了他的强大,也看到了他的无奈。

移植

跟着面试官共事1年后,我对面试官说:“我们俩在整个南部苦苦相守,但是你看看我们公司的高层,重视过技术?现在招的都是什么人,留下来的又都是什么人,我们俩技术过硬又能怎样?”此时正值2018 IT寒潮,一个敢辞职,一个敢招人,来到了如今的公司(世界100强),担任Java专家,级别和70后差不多,还有一堆80后叫我老师,挺尴尬的,毕竟我是个90后。

思考

平常不怎么写技术博客,但是技术论坛的确也没少逛,普通人也就是发技术贴,看似等级很高,头衔很吓人,其中又有多少水贴呢。授人以鱼不如授人以渔,重要的不是解决问题,重要的是知道怎么解决问题。工作5年了,写些感悟,技术提升只能靠自己,我能帮ITer的便是提高大家的思想觉悟。3年工作经验的时候,我的实战能力很强,理论知识薄弱,后来,便从头补充理论知识。现在总结下来,还是得理论过关,不然永远都有个瓶颈卡着脖子。

Java宝典

通常,JAVA开发者必看2本书《Java从入门到精通》《深入理解Java虚拟机:JVM高级特性与最佳实践》。第一本在开始自己的Java生涯时,便需要学完,这本书太基础就不详说了。第二本则是最关键的一本书,这本书会决定你,能否在Java这条路上有所突破,这本书至少应该在3年工作经验的时候看完。现在我去面试别人,只要你工作经验≥3年,我绝对会问JVM知识,5年以上便会问不同版本之间的JVM异同,有时候会让他们分析其中的原因。

JVM这本书目前出版了第3版,每版都会有新特性加入,如果可能,当然是所有都看,不过还是建议直接看最新版的,这本书的好处就是不同版本都有不同的主题色彩,红色经典、蓝色升级版、紫色是最新版的。

为什么是这本书,Java的畅销书很多,但是想要进阶就需要自己挑选有用实用的书,这本书算是我读过中,初入高阶不错的书籍。读这本书的时候一定要实践结合理论,不是说看一遍就行了,好歹得拿本地的JVM试试手吧,其中有些理论甚至可以变种运用到日常的开发中,以其中锁概念为例子,有些时候需要某一串原子交易时,你就可以借鉴锁机制,也可以借鉴数据库事务机制,特别时分布式架构中,这是一个共通的难点,虽说现在分布式已有原子交易的解决方案,但并不是通用就适合你的情况。平时要多思考,思考时,就会充分的发挥你的理论知识。然后付诸实践,然后才能设计出最适合你们的最佳解决方案。

未来的路

十年磨一剑,我不过5年而已,3年的坎我过的很顺利,5年的坎也不错,10年的坎,我不想让自己遗憾。不过想想那么多人5+年了,JVM都不会。如今的我已经能够像当年的面试官那像一人镇守一方,花费的时间也只有他的一半。5年后,要么站在科技最前沿,要么转行此生不再接触IT。

推荐阅读

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

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

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

你与世界

只差一个

公众号

相关文章:

  • 给平庸程序员的12条建议
  • 华章新春献礼 扫码免费领书
  • 编程语言书单(Java核心技术篇)
  • ​人工智能书单(数学基础篇)
  • 中国医院需要什么样的数据中台?
  • 人工智能书单(机器学习理论篇)
  • 智能时代书单
  • 人工智能书单(机器学习实践篇)
  • 人工智能书单(图像处理与计算机视觉篇)
  • 立春好消息:华章图书持续霸榜京东、当当计算机畅销新书榜!
  • 小白入门机器学习必备:编程语言环境介绍及搭建
  • Linux系统运维书单
  • OpenStack常见的22个问题汇总
  • 疫情肆虐下,程序员用代码告诉你为什么千万不要出门!
  • 双手奉上数据库技术书单,助你玩转数据库的各种技术!
  • SegmentFault for Android 3.0 发布
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • docker python 配置
  • Hexo+码云+git快速搭建免费的静态Blog
  • Invalidate和postInvalidate的区别
  • JAVA SE 6 GC调优笔记
  • Java深入 - 深入理解Java集合
  • java正则表式的使用
  • node入门
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Wamp集成环境 添加PHP的新版本
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从tcpdump抓包看TCP/IP协议
  • 基于组件的设计工作流与界面抽象
  • 解析带emoji和链接的聊天系统消息
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)965
  • 深入浅出Node.js
  • 我与Jetbrains的这些年
  • 项目管理碎碎念系列之一:干系人管理
  • 正则表达式
  • 自定义函数
  • 白色的风信子
  • ​2021半年盘点,不想你错过的重磅新书
  • #pragma预处理命令
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • .dwp和.webpart的区别
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net Core与存储过程(一)
  • .net开发引用程序集提示没有强名称的解决办法
  • .Net中的集合
  • /proc/stat文件详解(翻译)
  • ?.的用法
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @Transaction注解失效的几种场景(附有示例代码)
  • @软考考生,这份软考高分攻略你须知道