[Java学习探讨]为何学Java虚拟机的Java程序员更值钱?

[Java学习探讨]为何学Java虚拟机的Java程序员更值钱?
曾经的我常常惧怕处理与JVM相关的异常,对JVM的配置参数也一无所知,那时候我天真地认为,JVM的出现自己就是想让程序员屏蔽实现细节,做为一名普通的开发,咱们彻底没有必要了解内在构造,只要记住一些简单的规则足矣。
随着工做的深刻,我开始接触到JVM的实现原理,得心应手以后,我发现本身看到了一片更为广阔的天地。简而言之,当我再遇到问题时,我也可以更加快速和系统地思考问题的性质,并快速作出判断。同时,学习新的编程语言时,我也能够从“同理心”的角度思考为何做者要这样设计,他的用意何在。基于这些思考和分析,我也可以快速看到事情的本质,跑得更快,走得更远。
因此,做为一名Java程序员,在尽情享受Java虚拟机带来好处的同时,你还应该去了解和思考“这些技术特性是如何实现的”,去了解最底层的原理。只有熟悉JVM,你才能在遇到OutOfMemory等异常时,不会一筹莫展,不会一脸懵逼的上网找解决办法,最后就算改了几个启动参数解决了问题,也仍是云里雾里。html

[Java学习探讨]为何学Java虚拟机的Java程序员更值钱?
“为何学Java虚拟机”这个问题,就和“为何要学习数据结构和算法”是一个道理:工欲善其事,必先利其器。能够说,Java虚拟机就是每一位Java工程师进阶加薪的利器,你想往上升,你想深刻技术,不想一直停留在简单开发,或者你在作Java性能分析、调优工做时,那么,Java虚拟机绝对是一把助力的利剑。
但,在我7年的学习工做生涯中,我拜读过许多大神关于Java虚拟机的技术博客,在受益不浅的同时,我发觉很多文章的门槛都比较高,并且过度注重实现细节,这并非大多数的开发人员能够受益的调优方案。这么一来,许多本来对Java虚拟机感兴趣的同窗, 也由于太高的门槛,以及短期内看不到的收益,而放弃了对Java虚拟机的学习。
这是我很是不想看到的。在收到极客时间的邀请后,我决定挑战一下Java虚拟机的科普工做,因而有了这个专栏:《深刻拆解Java虚拟机》。在这个专栏里,我会用简单通俗的语言,来介绍Java虚拟机的实现。具体到每篇文章,我将采用一个贯穿全文的案例来阐述知识点,而且给出相应的分析建议。在文章的末尾,我还将附上一个动手实践的环节,帮助你巩固对知识点的理解。
我是谁?
我是郑雨迪,是甲骨文实验室(Oracle Labs)的高级研究员,主要负责研究如何经过程序分析技术以及动态编译技术让程序语言跑得更快。我是全栈虚拟机Graal编译器的核心开发者之一,也在为HotSpot虚拟机项目添砖加瓦。
这里顺便说明一下,Graal编译器是Java 10正式引入的实验性即时编译器,在国内同行口中被称为“甲骨文黑科技”。其实,咱们的工做一样也是分析应用程序的性能瓶颈,寻找优化空间,只不过咱们的优化方式对自动化、通用性有更高的要求。所以,我来说Java虚拟机,能够为你提供一些深刻的、独特的视角,让你更能洞察Java虚拟机的核心。
加入甲骨文以前,我在瑞士卢加诺大学攻读博士学位,研究如何更加精准地监控Java程序,以便作出更具针对性的优化。好比,我研究过JVM监控工具的“observer effect”,并提出一套针对动态编译的解决方案。苏菲的世界读书笔记(http://www.simayi.net/dushubiji/6415.html)摘抄好词好句好段及感悟赏析,这些研究工做均已发表在程序语言方向的顶级会议上,并得到了很多同行的承认。
个人整个专栏将分为四大模块。
基本原理:剖析Java虚拟机的运行机制,逐一介绍Java虚拟机的设计决策以及工程实现;
高效实现:探索Java编译器,以及内嵌于Java虚拟机中的即时编译器,帮助你更好地理解Java语言特性,继而写出简洁高效的代码;
代码优化:介绍如何利用工具定位并解决代码中的问题,以及在已有工具不适用的状况下,如何打造专属轮子;
虚拟机黑科技:介绍甲骨文实验室近年来的前沿工做之一GraalVM。包括如何在JVM上高效运行其余语言;如何混搭这些语言,实现Polyglot;如何将这些语言事前编译(Ahead-Of-Time,AOT)成机器指令,单独运行甚至嵌入至数据库中运行。程序员

相关文章
相关标签/搜索