文章目录
- 计划
- 缘起
- 跟郑老师学习
- 学习JVM的好处
计划
缘起
JVM对我来说是高深莫测的东西,从事软件开发有些年头了,很难深入的去学习它,一来是工作中没有亟需用到这些,都是写一些业务代码,二来是觉得困难没有坚持下去,也曾经读过JVM相关的书籍,这次不管是出于主动还是被动,要深入的拆解下JVM虚拟机。
跟郑老师学习
郑老师一枚幽默的老师,开篇来了个讲座、电影、鄙视链的开头。这个挺有意思,不看上下文就看这个写系统语言的鄙视托管语言低下的执行效率;写托管语言的则取笑系统语言需要手动管理内存;写动态语言的不屑于静态语言那冗余的类型系统;写静态语言的则嘲讽动态语言里面各种光怪陆离的运行时错误。
你看不起我,我不看好你,来呀,互相伤害呀,传说中有个鄙视链,笑笑就好,更多
无论是什么语言,都有其语言特长,语言并没有好坏,只有是否适合某个场景。
有时候学习就是知其然,不知其所以然,导致有些东西一知半解,深入不了学习 Java 虚拟机的本质,更多是了解 Java 程序是如何被执行且优化的。这样一来,你才可以从内部入手,达到高效编程的目的
这样就会更加深入的去了解到核心。
对于我这种只写业务逻辑的人呀,也应该认真的去学一下JVM的底层,记得前阿里的技术专家毕玄说过,你写这门语言你要知道它的运行原理,不然你写不出高性能的代码。郑老师说如果我们把核心类库的 API 比做数学公式的话,那么 Java 虚拟机的知识就好比公式的推导过程。掌握数学公式固然可以应付考试,但是了解背后的推导过程更加有助于记忆和理解。并且,在遇到那些没法套公式的情况下,我们也能知道如何解决。
能推导出来公式的小伙伴那是真的牛,向大牛看齐呦。
学习JVM的好处
- 可以满足不同场景下的性能指标
- 优化配置参数,Java10的JVM参数有上千个,掌握些重要的参数十分有必要
- JVM是工程产品存在局限性,学好了可以避坑
- JVM有最前沿、最成熟的垃圾回收算法实现,以及即时编译器实现。学好了,对其他技术也可以触类旁通
- JVM 不单单是为Java使用,还有Scala、Clojure、Groovy,以及时下热门的 Kotlin,都可以运行在JVM上,只要符合JVM规范,编译成字节码,均可以在JVM中运行。
最后说一句Graal 编译器是 Java 10 正式引入的实验性即时编译器,在国内同行口中被戏称为“甲骨文黑科技
看到黑科技,这技术人员青睐的东西,必须跟一波。
此文章为 4 月 Day17 学习笔记,内容来源于极客时间链接: 《深入拆解 Java 虚拟机》如果想学Java虚拟机的强烈推荐该课程!