5 年 Java 开发 4 面阿里挂在 JVM,临走时面试官给了我一份 JVM 手册

Java 是目前用户最多、使用范围最广的软件开发技术之一。Java 的技术体系主要由支撑 Java 程序运行的虚拟机、提供各开发领域接口支持的 Java API、 Java 编程语言及许多第三方 Java 框架(如 Spring、Struts 等 )构成。
这里面有 Java 虚拟机的原因: 为了达到给所有硬件提供一致的虚拟平台的目的,牺牲了一些与硬件相关的性能特性。更重要的是人为原因:如果开发人员不了解虚拟机--些技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。.

在国内,有关 Java API、Java 语 言语法及第三方框架的技术资料和书籍非常丰富, 相比之下, 有关 Java 虚拟机的资料却显得异常贫乏。

随着 Java 技术的不断发展,它被应用于越来越多的领域之中。其中一些领域,如电力、金融、通信等,对程序的性能、稳定性和可扩展性方面都有极高的要求。程序很可能在 10 个人同时使用时完全正常,但是在 10000 个人同时使用时就会缓慢、死锁,甚至崩溃。


毫无疑问,要满足 10000 个人同时使用需要更高性能的物理硬件,但是在绝大多数情况下,提升硬件效能无法等比例地提升程序的运作性能和并发能力,甚至可能对程序运作状况完全没有任何改善。





评论