最近阅读周志明的《深入理解 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技术体系所包含的内容
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 发展史

  1. 1991 年 4 月,Oak(橡树)出现,目的在于开发一种能够在各种消费型电子产品(机顶盒、冰箱、收音机)上运行的程序架构,是为 Java 前身
  2. 1995 年,Oak 正式更名为 Java,并且在 SunWorld 大会上正式发布 1.0 版本,同时提出“Write Once,Run Everywhere”口号
  3. 1998 年,发布里程碑式的 1.2 版本,Sun 在这个版本中将 Java 按照服务领域拆分为三个方向:J2SE, J2ME, J2EE,并且第一次内置了 JIT 编译器,以及内置 Classic、HotSpot、Exact 三种 VM
  4. 2002 年,发布第一个真正成熟的版本 1.4,同年出现 .NET
  5. 2009 年,发布 1.7,代号 Dolphin 海豚

实践:编译 JDK

时间原因没有进行进行编译,只是把源码下载下来,日后有需要会补上