(1)前言

Java的技术体系主要由支撑Java程运行的虚拟机,提供各开发领域接口支持的 Java APIJava编程语言及许多第三方Java框架 (如 Spring/ struts等)构成。

四个重点:

  • 虚拟机
  • API
  • 编程语言
  • 第三方框架

可以看到,有关 Java API语言语法及第三方框架的技术资料和书籍非常丰富,相比之下,有关Java虚拟机的资料很少。

这在很大程度上是由Java开发技术本身的一个重要优点导致的:在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。

运行程序的物理机器的情况千差万别,而Java虚拟机则在任何一台虚拟机上正常运行。这一极大优势使得Java应用的开发比传统的 C / C++ 应用的开发更高效和快捷, 程序员可以把主要精力集中在具体业务逻辑上,而不是物理硬件的兼容性上。在一般情况下,一个程序员只要了解了必要的Java API、Java语法,以及学习适当的第三方开发框架, 就已经基本能满足日常开发的需要了, 虚拟机会在用户不知不觉中完成对硬件平台的兼容及对内存等资源的管理工作, 因此。了解虚拟机的运作并不是一般开发人员必须掌握的知识。

虚拟机就像我们身体的免疫系统一样,在面临各种环境下都可以保护我们,而我们也并不需要掌握这些知识。

但是,在一些对程序性能、稳定性和可扩展性方面都有极高的要求。程序可能在10 个人同时使用时完全正常, 但是在100000 个人同时使用时就会缓慢、死锁、甚至崩溃。 毫无疑问, 要满足 10000 个人同时使用需要更高性能的物理硬件,但是在绝大多数情况下,提升硬件效能无法等比例的提升程序的运作能力和并发能力,甚至可能对程序运作状况完全没有任何改善。

这是为什么呢?

这里面有Java虚拟机的原因: 为了达到所有硬件提供一致的虚拟平台的目的,牺牲了一些与硬件相关的性能特征。更重要的是人为原因:

如果开发人员不了解虚拟机一些技术特性的运行原理,就无法写出最适合虚拟机运行的和自优化的代码。

发布了202 篇原创文章 · 获赞 4 · 访问量 4211

猜你喜欢

转载自blog.csdn.net/qq_44587855/article/details/103939661