最近阅读周志明的《深入理解 Java 虚拟机 JVM 高级特性与最佳实践》,以读书笔记的形式记录下所学所得,先给自己定个小目标,完成10篇笔记。
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。
概述
Java 不仅仅是一门编程语言,更是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境。它有一系列优点:
- 拥有一门结构严谨、面向对象的编程语言
- 摆脱硬件平台束缚,实现“一次编写,处处运行”
- 提供相对安全的内存管理和访问机制,避免了绝大部分内存泄露和指针越界
- 实现热点代码检测和运行时编译及优化,使得 Java 应用能随着运行时间的增加而获取更高的性能
- 有一套完善的应用程序接口,还有无数第三方类库实现各种功能
Java 技术体系
按照组成部分来分,Sun 官方定义的 Java 技术体系包括以下几个方面内容
- Java 程序设计语言
- 各种硬件平台上的 Java 虚拟机
- Class 文件格式
- Java API 类库
- 来自商业机构和开源社区的第三方 Java 类库
JDK(Java Development Kit):Java 程序设计语言 + Java 虚拟机 + Java API 类库,是支持 Java 程序开发的最小环境
JRE(Java Runtime Environment):Java 虚拟机 + Java SE API,支持Java 程序运行的最小环境
按照所服务的领域来分,Java 技术体系可以分为4个平台
- Java Card:支持一些 Java 小程序(Applets)运行在小内存设备上的平台
- Java ME(Micro Edition):支持 Java 程序运行在移动终端(手机、PDA)平台,对 Java API 有所精简,并加入了针对移动终端的支持,旧称 J2ME
- Java SE(Standard Edition):支持面向桌面级应用(如 Windows 下的应用程序)的 Java 平台,提供完整的 Java 核心 API,旧称 J2SE
- Java EE(Enterprise Edition):支持面向多层架构的企业应用(如 ERP、CRM)的 Java 平台,除了提供 Java SE API 外,还对其做了大量补充以及部署支持,旧称 J2EE
Java 发展史
- 1991 年 4 月,Oak(橡树)出现,目的在于开发一种能够在各种消费型电子产品(机顶盒、冰箱、收音机)上运行的程序架构,是为 Java 前身
- 1995 年,Oak 正式更名为 Java,并且在 SunWorld 大会上正式发布 1.0 版本,同时提出“Write Once,Run Everywhere”口号
- 1998 年,发布里程碑式的 1.2 版本,Sun 在这个版本中将 Java 按照服务领域拆分为三个方向:J2SE, J2ME, J2EE,并且第一次内置了 JIT 编译器,以及内置 Classic、HotSpot、Exact 三种 VM
- 2002 年,发布第一个真正成熟的版本 1.4,同年出现 .NET
- 2009 年,发布 1.7,代号 Dolphin 海豚
实践:编译 JDK
时间原因没有进行进行编译,只是把源码下载下来,日后有需要会补上