实战Java虚拟机:JVM故障诊断与性能优化 (第2版) - (EPUB全文下载)
文件大小:1.56 mb。
文件格式:epub 格式。
书籍内容:
实战Java虚拟机:JVM故障诊断与性能优化 (第2版)
第1章 初探Java虚拟机
第2章 认识Java虚拟机的基本结构
第3章 常用Java虚拟机参数
第4章 垃圾回收的概念与算法
第5章 垃圾收集器和内存分配
第6章 性能监控工具
第7章 分析Java堆
第8章 锁与并发
第9章 Class文件结构
第10章 Class装载系统
第11章 字节码执行
反侵权盗版声明
第1章 初探Java虚拟机
什么是Java虚拟机?什么是Java语言?两者又有何关系?作为本书开篇之章,本章将主要介绍有关Java虚拟机的基本概念、发展历史和实现概要。其中,将重点介绍支撑Java世界的两份重要规范—Java语言规范和Java虚拟机规范,帮助读者更好地理解Java生态圈。
本章涉及的主要知识点有:
· 读懂Java的发展历史。
· 学习Java虚拟机的概念和种类。
· 接触Java语言规范。
· 了解Java虚拟机规范。
· 掌握单步调试Java虚拟机的方法。
1.1 知根知底:追溯Java的发展历程
目前,Java语言可以说是最常用的编程语言之一,在应用软件领域,它唯一的竞争对手似乎只有微软的.NET。C/C++作为曾经的霸主,目前依然占据着系统软件和嵌入式系统绝对的市场份额,但正在逐步退出应用软件领域。和C/C++相比,Java在设计上有着绝对的优势,开发人员可以尽快从语言本身的复杂性中解脱出来,将更多的精力投向软件自身的业务功能。由于Java语言的这种简单性,也可以认为Java是一门极好的初学者入门语言。
但是,正如“人无完人”,Java在不少地方依然受到了广大开发人员的诟病,它烦琐的语法经常受到Python等开发人员的嘲笑。在语言的动态性上,甚至也远远不如和它年龄相仿的PHP语言。但为了支持动态语言,Java虚拟机推出了新的函数调用指令invokedynamic(本书将在第11章中具体介绍该指令),试图弥补Java在动态调用上的不足。
值得欣慰的是,到目前为止,Java仍然处于快速发展期,在不断地壮大与完善。
1.1.1 那些依托Java虚拟机的语言大咖们
无论受到多少非议,Java的崛起已经是不争的事实。想起《康熙王朝》中的对白,哪一位千古帝王、功臣名将不是“褒满天下,谤满天下”。而且万幸的是,Java生态系统极具活力,在Java 8中,已经推出了函数式编程语法,试图简化Java语言的语法。如果你不喜欢这种新的语法也没关系,Clojure语言作为Lisp的方言,可以很好地在Java虚拟机上执行。如果你受不了Lisp形式的怪异语法,Jython已经可以将Python运行在Java虚拟机上。如果你只需要一个简单的脚本,Groovy也可以成为你的选择。哦,对了,还有Scala,专注于高并发的解决方案。在这里,你可以找到需要的一切。
所有这一切,仍然在不断地蓬勃发展,它们和那个看似呆板的Java语言渐行渐远,但却都深深地扎根于Java虚拟机平台上。
1.1.2 Java发展史上的里程碑
下面,将简要介绍一下Java发展史上的重大事项。
1990年,在Sun计算机公司中,由Patrick Naughton、Mike Sheridan及James Gosling领导的小组Green Team开始研发一种可控制家用电子产品的新型计算机软件技术,并希望能够研究出一种可以跨平台的系统。开始他们试着在C++的基础上做修改,但一直无法克服编译器的问题,所以决定自行开发新的程序语言—Oak。这里的Oak已经具备安全性、网络通信、面向对象、垃圾回收、多线程等特性。后来他们发现Oak已经被其他公司注册,于是改名为Java。
1995年,Sun正式发布Java和HotJava产品,Java首次公开亮相。
1996年1月23日Sun Microsystems发布了JDK 1.0。这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括了核心API、用户界面API、发布技术、Java虚拟机(JVM)几个部分。开发环境包括了编译Java程序的编译器(即javac)。在JDK 1.0时代,Java使用一款叫作Classic的虚拟机解释执行Java字节码。
1997年2月18日Sun发布了JDK 1.1,在该版本中,已经支持AWT、内部类、JDBC、RMI、反射等特性。同年,Sun收购了一家叫作Longview Technologies的公司,从而获得了Hotspot虚拟机。
同在1997年,Jim Hugunin创造了Jython,但由于各种原因,Jython的发展相当缓慢,但到现在为止,Jython已经取得了长足的进步,甚至已经可以运行Django框架。
1998年,JDK 1.2版本发布(从这个版本开始的Java技术都称为Java 2)。Java 2不仅能兼容智能卡和小型消费类设备,还能兼容大型的服务器系统,它使软件开发商、服务提供商和设备提供商更加容易抢占市场机遇。这一开发工具极大地简化了编程人员编制企业级Web应用的工作。同时Sun发布了JSP/Servlet、EJB规范,将Java分成了J2EE、J2SE和J2ME。这表明了Java开始向企业、桌面应用和移动设备应用3大领域挺进。此时的Java已经做到了解释执行和编译执行混合运行。
2000年,JDK 1.3 发布,Hotspot虚拟机成为Java的默认虚拟机。
2002年,JDK 1.4 发布,古老的Classic虚拟机退出历史舞台。
2003年年底,Java平台的Scala正式发布,同年Groovy也加入了Java阵营。
2004年,JDK 1.5 发布。同时JDK 1.5改名为J2SE 5.0。在这个版本中,Java语言做了大量的改进,比如支持了泛型、注解、自动装箱拆箱、枚举类型、可变长参数、增强的foreach循环等。语法上的简化和改进是这一版本的一大特色。
2006年,JDK 1.6发布。同年,Java开源并建立了OpenJDK。顺理成章,Hotspot虚 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 实战Java虚拟机:JVM故障诊断与性能优化 (第2版) - (EPUB全文下载)