从零开始,读懂《深入理解java虚拟机》--- 第一章之走进Java

纯属个人理解,如有错误,下方评论,互相学习

先上图 

从零开始,读懂《深入理解java虚拟机》--- 第一章之走进Java

内侧封面有写,要想成为像“扫地僧”一样的绝世高人,此书是必备的。

第一章 走进java

1.1 概述

一次编写,到处运行

1.2 Java技术体系

我们把java程序设计语言、java虚拟机、java API类库这三部分统称为 JDK ,JDK 是用于支持java程序开发的最小环境。

可以把java API类库中的 java SE API 子集 和java虚拟机 这两部分统称为 JRE ,JRE 是支持java程序运行的标准环境。

Java的技术体系分为4个平台
Java Card : 支持java程序运行在小内存设备上的平台
Java ME    : 支持java程序运行在移动终端上的平台
Java SE    : 支持面向桌面级应用(例如Windows下的应用程序)的java平台,提供了完整的java核心API,这个版本以前称为J2SE
Java EE     : 支持使用多层架构的企业应用(ERP、CRM)的java平台,提供java SE API外 ,还对其做了大量的扩充并提供了相关的部署支持,这个版本以前称为 J2EE。

1.3 Java 发展史
太多了。。。。。。 我们记住这个伟大的人  James Gosling  詹姆斯.高思林

1.4  Java虚拟机发展史
1.4.1 记住第一款商用java虚拟机  Sun Classis VM 记住它干嘛?别急往下看。因为Classis VM 在当时编译java代码特别的慢,“Java语言很慢”,在当时的用户心中慢慢树立开来,直到 JDK 1.2 时 出现了一款名叫Exact VM 的虚拟机 技术相对比 Classis VM 先进了许多,但是出现了很短暂的时间就比更优秀的 HotSpot VM 取代了,什么? HotSpot VM 你也不知道 ,别急,看下图。是不是跟亲近了一些。
 

从零开始,读懂《深入理解java虚拟机》--- 第一章之走进Java

1.4.2  很多人都知道  HotSpot VM 它是Sun JDK 和 Open JDK 中自带的虚拟机 ,但是这个并不是Sun 公司开发的,而是由一家名叫 “Longview Technoloies” 的小公司设计的,不过后来被Sun 收购了,从而获得 HotSpot VM。HotSpot VM  继承了 Sun 公司之前两款虚拟机的优点 也就是准确式内存管理。

1.4.3 Sun公司的其他虚拟机
KVM
CDC/CLDC
HotSpot Implementation 
squawk VM
JavaInJava
Maxine VM

1.4.4  BEA和IBM公司的虚拟机
JRockit VM
IBM J9 VM 

1.4.5 Azul Systems和BEA公司的虚拟机
Azul VM 基于HotSpot VM进行大量改进
Liquid VM 就是现在的JRockit VM  运行在自家的系统上,不需要操作系统的支持

1.4.6 Apacje Harmony 和 Google Android Dalvik VM 只能称作 “虚拟机”,而不能称作 “java虚拟机”
Apacje Harmony 不能成为java虚拟机 里面有一段“相爱相杀”的爱情故事,这里就不细说了。
Dalvik VM 是 Android 平台的核心组成部分之一,随着Android 一起处于迅猛发展阶段。

1.4.7 Microsoft JVM 及其他
这里说到微软公司的虚拟机 Microsoft JVM 是当时Windows系统下最好的java虚拟机,不过后来跟Sun公司打官司输了,通通移除,最终还赔了10亿美元。
Jam VM
cacaovm
Sable VM
Kaffe
Jelatine JVM
Nano VM
MRP
Moxie JVM
Jikes RVM

1.5 展望Java技术下一个十年

1.5.1 模块化 模块化是解决应用系统与技术平台越来越复杂,越来越庞大问题的一个重要途径,如今模块化已经成为一项无法阻挡的变革潮流。

1.5.2 混合语言 多语言混编的思想

1.5.3 多核并进 利用多个CPU核心提供的计算资源来写作完成一个辅助的计算任务

1.5.4 进一步丰富语法  面向函数方式的编程可能会成为主流。

1.5.5 64位虚拟机 因为企业级应用经常需要使用超过4GB的内存,所以大多数用户电脑都是64位的,如果比起性能的话32 位系统性能会更好,Sun 对此提供了普通对象指针压缩功能 ,随着时代的发展,虚拟机完全从32位过渡到64位,是时间问题。

1.6 实战:自己编译JDK

1.6.1 获取 JDK 源码  http://jdk.java.net/

1.6.2 系统需要,MacOS Linux 上相比 Windows简单

1.6.3 构建编译环境 

1.6.4 进行编译。

1.6.5 在IDE工具中进行源码调试

1.7 本章小结 

下面我会进行编译 会简单把遇到的问题 编译步骤贴出来

未完。。。