《深入理解Java虚拟机》读书笔记---第一章 走进Java
一.为什么要读此书
《深入理解Java虚拟机》这本书读了很多次,每次读都会有不一样的感受。首先说一下为什么要读这本书,如果把Java比喻成乾坤大挪移,那了解虚拟机的工作原理就是练习九阳神功,java语言是招式,对虚拟机的认识是内功心法,只有内功心法强大,所使的招式才强大,这就是为什么阳顶天只能把乾坤大挪移练到第四层,而张无忌能练到第七层。由于java虚拟机的强大,把很多功能都隐藏了,例如内容管理,垃圾回收机制等,使得很多java程序猿对这一块的知识所有缺失,编码的时候也是似懂非懂的,以至于遇到很多问题知其然不知其所以然。
在当今社会,程序猿日子过得都很紧凑,以至于大家都没过多的时间看书,日后笔者会总结该书的读书笔记,主要是罗列该书的重点知识以及加入一些自己的想法帮助大家理解。
二.java技术体系
官方所定义的java技术体系包括以下几个组成部分:
1.Java程序设计语言
2.各种硬件平台上的Java虚拟机
3.Class文件格式
4.Java API 类库
5.来自商业机构和开源社区的第三方Java类库
Java技术体系所包含的内容
大家一定要认真看看这个图,看看自己都知道哪些,不知道哪些,《深入理解Java虚拟机》这本书主要讲解的是JRE中Java Virtual Machine(JVM)的工作原理。
三.Java发展史
书中还介绍了Java的发展系,这里就不详细列举了,主要讲一下比较关键的历史性转折点。
1.Java语言一开始叫Oak(橡树),1995年5月23日,正是更名为Java。
2.1998年12月4日,JDK迎来了一个里程碑式的版本JDK1.2,工程代号为PlayGround(竞技场),SUN在这个版本中把Java技术体系拆分为3个方向,分别是面向桌面应用开发的J2SE(Java 2 Platform,Standard Edition),面向企业级开发的J2EE(Java 2 Platform,Enterprise Edition)和面向手机等移动终端开发的J2ME(Java 2Platform,Micro Edition)。
3.2002年2月13日,JDK1.4发布,这个版本是Java真正走向成熟的一个版本,哪怕是在十几年后的今天,也有很多公司还在使用此版本。
4.2004年9月30日,JDK1.5发布,改进了内存模型,提供了java.util.concurrent并发包,在并发变成上为开发人员带来了极大的方便。
5.2009年4月20日,Oracl宣布正式以74亿美元的价格收购Sun公司,至今笔者还是挺惋惜IBM没有成功收购Sun。
四.展望Java的技术的未来
经常会有一些毕业生或者在校生会问笔者,学什么语言好,学JAVA有前途不,这一类的问题,笔者想说,语言只是一种工具,难道把java学会了,再去学另外一门语言就会很难么?不就是语法改变一下而已嘛。人家国外的程序猿都要求自己每年学一门新的语言,语言学多了,你才有评价一门语言好不好的资格。这里稍微扯了一下蛋,回归正传,其实JAVA语言还是很有发展前景的。
1.模块化,模块化是解决应用系统与技术平台越来越复杂,越来越庞大而产生的一系列问题的一个重要途径。最近几年OSGI技术的迅速发展正说明了通过模块化实现按需部署,降低复杂性和维护成本的需求是相当迫切的。
2.混合语言,今年原来越多语言运行在Java这个平台上,例如Groovy,JRuby,Clojure等。试想一下,在一个项目中,并行处理使用Clojure语言编写,展示层使用Jruby或Rails,中间层则是Java,每个应用层将使用不同的语言来完成,而且,接口对每一层的开发都是透明的,各种语言之间的交互不存在任何困难,因为它们最终都运行在一个虚拟机上。
3.多核并行,引入java.util.concurren包,能够轻松地利用多个CPU核心提供的计算资源完成一个复杂的计算任务。
3.进一步丰富语法,JDK不断升级改进语法。
4.随着主流的CPU开始支持64位架构,JAVA虚拟机也在很早之前就推出了支持64位系统的版本。
五.自己编译JDK
想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一台JDK。通过阅读和跟踪调试JDK源码去了解Java技术体系的原理。在自己本地安装JDK可参考此文章。http://www.linuxidc.com/Linux/2011-09/42085.htm