java是目前用户最多、应用范围最广的软件开发技术,Java的技术系统主要包括支持Java程序运行的虚拟机、Java类库、Java编程语言和许多第三方Java框架(例如Spring、由MyBatis)等组成。
关于Java类库的API在国内、与Java虚拟机相比,Java语言语法和第三方框架的技术资料和书籍十分丰富,但关于Java虚拟机的资料却十分匮乏。
这种状况很大程度上是由Java开发技术本身的一个重要优点导致的:在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。
运行程序的物理机千差万别,而Java虚拟机则在千差万别的物理机上面建立了统一的运行平台,
实现了在任意一台Java虚拟机上编译的程序,都能在任何其他Java虚拟机上正常运行。
这一极大的优势使得Java应用的开发比传统C/C++应用的开发更高效快捷,程序员可以把主要精力放在具体业务逻辑,而不是放在保障物理硬件的兼容性上。
通常情况下,一个程序员只要了解了必要的Java类库API、Java语法,学习适当的第三方开发框架,就已经基本满足日常开发的需要了。
虚拟机会在用户不知不觉中完成对硬件平台的兼容及对内存等资源的管理工作。因此,了解虚拟机的运作并不是普通开发人员必备的,或者说首要学习的知识。
然而,凡事都具备两面性。随着Java技术的不断发展,它已被应用于越来越多的领域之中。
其中一些领域,如互联网、能源、金融、通信等,对程序的性能、稳定性和扩展性方面会有极高的要求。
一段程序很可能在10个人同时使用时完全正常,但是在10000个人同时使用时就会缓慢、死锁甚至崩溃。
毫无疑问,要满足10000个人同时使用,需要更高性能的物理硬件,但是在绝大多数情况下,
提升硬件性能无法等比例提升程序的运行性能和并发能力,甚至有可能对程序运行状况没有任何改善。
这里面有Java虚拟机的原因:为了达到*所有硬件提供一致的虚拟平台”的目的,牺牲了一些硬件相关的性能特性。
更重要的是人为原因:如果开发人员不了解虚拟机诸多技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。
其实,目前商用的高性能Java虚拟机都提供了相当多的优化参数和调节手段,用于满足应用程序在实际生产环境中对性能和稳定性的要求。
如果只是为了入门学习,让程序在自己的机器上正常工作,那么这些特性可以说是可有可无的:但是,
如果用于生产开发,尤其是大规模的、企业级的生产开发,就迫切需要开发人员中至少有一部分人对虚拟机的特性及调节方法具有很清晰的认识。
所以在Java开发体系中,对架构师、系统调优师、高级程序员等角色的需求一直都非常大。
学习虚拟机中各种自动运作特性的原理也成为Java程序员成长路上最终必然会接触到的一课。
通过本书,读者可以以一个相对轻松的方式学到虚拟机的运作原理。
本书面向的读者
(1)使用Java技术体系的中、高级开发人员
Java虚拟机作为中、高级开发人员修炼的必要知识,有着较高的学习门槛,本书可作为学习虚拟机的教材。
(2)系统调优师
系统调优师是最近几年才兴起并迅速流行起来的职业,本书中的大量案例、代码和调优实战将会对系统调优师的日常工作有直接的参考作用。
(3)系统架构师
保障系统的性能、并发和伸缩等能力是系统架构师的主要职责之一,而这部分与虚拟机的运作密不可分,本书可以作为他们制定应用系统底层框架的参考资料。
下面是《深入理解Java虚拟机》教材目录:
教材内容部分展示:
| 深入理解Java虚拟机:JVM高级特性与最佳实践 百度网盘 课程大小:0.00字节 |
提取码:**** (购买后可见) |
下载 |