广州市网站建站,广告设计专业专科,淘宝网站制作教程,凡科互动网站登录入口前言#xff1a;
Java是目前用户最多、使用范围最广的软件开发技术之一。Java 的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、 Java编程语言及许多第三方Java框架(如Spring、Struts 等)构成。在国内#xff0c;有关Java API Java语言语法及…前言
Java是目前用户最多、使用范围最广的软件开发技术之一。Java 的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、 Java编程语言及许多第三方Java框架(如Spring、Struts 等)构成。在国内有关Java API Java语言语法及第三方框”架的技术资料和书籍非常丰富 相比之下有关Java虚拟机的资料却显得异常贫乏。.这种状况在很大程度上是由Java开发技术本身的一-个重要优点导致的:在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。运行程序的物理机器的情况千差万别而Java虚拟机则在差万别的物理机上建立了统 -的运行平台实现了在任意- - 台虚拟机上编译的程序都能在任何一台虚拟机上正常运行。这-极大优势使得Java应用的开发比传统CLC应用的开发更高效和快捷程序员可以把主要精力集中在具体业务逻辑上而不是物理硬件的兼容性上。在一般情况下 一个程序员只要了解了必要的Java API、Java 语法以及学习适当的第三方开发框架就已经基本能满足日常开发的需要了虚拟机会在用户不知不觉中完成对硬件平台的兼容及对内存等资源的管理工作。因此了解虚拟机的运作并不是一-般开发人员必须掌握的知识。然而凡事都具备两面性。随着Java技术的不断发展它被应用于越来越多的领域之中。其中-些领域如电力、金融、通信等对程序的性能、稳定性和可扩展性方面都有极高的要求。程序很可能在10个人同时使用时完全正常但是在10 000个人同时使用时就会缓慢、死锁甚至崩溃。毫无疑问要满足10 000个人同时使用需要更高性能的物理硬件但是在绝大多数情况下提升硬件效能无法等比例地提升程序的运作性能和并发能力甚至可能对程运作状况完全没有任何改善。这里面有Java虚拟机的原因:为了达到给所有硬件提供-致的虚拟平台的目的牺牲了- -些与硬件相关的性能特性。更重要的是人为原因:如果开发大员不了解虚拟机- -些技术特性的运行原理就无法写出最适合虚拟机运行和自优化的代码。其实目前商用的高性能Java虚拟桃都提供了相当多的优化特性和调节手段用于满足应用程序在实际生产环境中对性能和稳定性的要求。如果只是为了人门学习让程序在自己的机器上正常运行那么这些特性可以说是可有可无的;如果用于生产开发尤其是企业级生产开发就迫切需要开发人员中至少有一部分人对虚拟机的特性及调节方法具有很清晰的认识所以在Java开发体系中对架构师、系统调优师、高级程序员等角色的需求一直都非常大。学习虚拟机中各种自动运作特性的原理也成为了Java 程序员成长道路上必然会接触到的- -课。本书可以使读者以-一种相对轻松的方式学习虚拟机的运作原理对Java程序员的成长也有较大的帮助。
第2版与第1版的区别
JDK 1.7在2011 年7月28日正式发布相对于2006年发布的JDK 1.6新版的JDK有了许多新的特性和改进。本书的第2版也相应地进行了修改和升级把讲解的技术平台从JDK 1.6提升至JDK 1.7。例如增加了对JDK 1.7中最新的G1收集器以及JDK 1.7中JSR-292 knvokeDynamic (对非Java语言的调用支持)的分析讲解等内容。在第1版出版后笔者收到了许多热心读者的反馈见部分读者提出OpenJDK开源已久第厂版却很少有直接分析OpenJDK源码的内容有点“视宝山而不见”的感觉。因此在本书第2版中笔者特别加强了对这部分内容的讲解其中在第1章中就介绍了如何分析、调试OpenJDK源码等。在本书后续章节中不少关于功能点的讲解都直接使用OpenJDK中的HotSpot源码或者JIT编译器生成的本地代码作为论据。如何把Java虚拟机原理中许多理论性很强的知识、特性应用于实践开发是本书贯穿始终的指。由于笔者希望在本书第2版中进一步加强知识的实践性因此增加了许多对处理JVM常见问题技能的讲解包括如何分析GC日志、如何分析JIT编译器代码优化过程和生成代码等。并且在第1版的基础上第2版中进一步增加了若干处理JVM问题的实践案例供读者参考。另外本书第2版还修正了第1版中多处错的、有歧义的和不完整的描述。有关勘误信息可以参考第1版的勘误页面(tp://icyfenix.iteye.com/blog/1119214)。
本书面向的读者
(1)使用Java技术体系的中、高级开发人员 Java虚拟机作为中、高级开发人员必须修炼的知识有着较高的学习门槛本书可作为学习虚拟机的优秀教材。 (2)系统调优师 系统调优师是近几年才兴起的职业本书中的大量案例、代码和调优实战将会对系统调优师的日常工作有直接的帮助。 (3)系统架构师 保障系统的性能、并发和伸缩等能力是系统架构师的主要职责之-一而这部分与嘘拟机的运作密不可分本书可以作为他们制定应用系统底层框架的参考资料。