如何看待Java上层技术与JVM
你是否也遇到过这些问题
- 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!
- 想解决线上JVM GC问题,但却无从下手。
- 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧,然后就JJ了
- 每次ms之前都要重新背一遍JVM的一些原理概念性的东西,然而msg却经常问你在实际项目中如何调优JVM参数,如何解决GC,OOM等问题,一脸懵逼。理论的东西容易忘,经验性的东西还是通过实操获得的。
大部分Java开发人员,除了会在项目中使用到与Java平台相关的各种高精尖技术之外,对于Java技术的核心(即Java虚拟机)是了解甚少的。
开发人员如何看待上层框架
- 一些有一定工作经验的开发人员,打心眼儿里觉得SSM,微服务等上层技术才是重点,基础技术并不重要,这其实是一种本末倒置的“病态”。
- 如果我们把核心类库的 API 比作数学公式的话,那么 Java虚拟机的知识就好比公式的推导过程。
- JVM,JAVA基础,这些都是内功;高级框架是招式,内功修炼好了,你的招式才会厉害;否则内功不行,再厉害的招式你都撑不了几回合。
计算机是怎么识别语言的?
如下图:
计算机其实是识别不了高级语言的,我们的高级语言会被先解释成汇编语言,然后汇编语言再解释成机器指令,最后CPU才能识别命令计算器干具体的事情。
其中高级语言像JAVA是面向对象的,因此你再读java代码的时候,其实就是在读问题的解决方案了,但是像汇编语言,它就非常枯燥乏味了,因为它不是面向对象的,它是面向机器的,你光看汇编语言的代码,你是不知道它究竟处理的是什么问题的。
架构师每天都在思考什么?
- 应该如何让我们的系统更快?
- 如何避免系统出现瓶颈?