第一章:走进Java

1.1 概述

Java 不仅仅是一门编程语言,还是一个有一系列计算机软件和规范形成的技术体系.

1.2 Java 技术体系

Sun 官方定义的Java技术体系:

  • Java 程序设计语言
  • 各种硬件平台上的Java虚拟机
  • Class 文件格式
  • Java API 类库
  • 来自商业机构和开源社区的第三方Java类库

JDK(Java Development Kit): Java程序设计语言 + Java 虚拟机 + Java API类库
JDK 是用于支持Java程序开发的最小开发环境.
JRE(Java Runtime Environment): Java API中 Java SE API 子集 + Java 虚拟机
JRE 是支持Java 程序运行的标准环境.

Java 技术体系图

上面是按照各个组成部分的功能来划分,如果按照技术关注的重点业务领域来划分,可以分为以下4个平台:

  • Java Card: 支持一些Java 小程序(Applets)运行在小内存设备上的平台
  • Java ME(Micro Edition): 支持Java程序运行在移动终端, 对Java API 有所精简
  • Java SE(Standard Edition): 支持面向桌面级应用的Java平台,提供完整的Java 核心API
  • Java EE(Enterprise Edition):支持使用多层架构的企业应用的Java平台.

1.3 Java 发展史

Java技术发展的时间线
  • 1991.4 绿色计划:Oak
  • 1995.5.23 Oka 改名为Java, 第一次提出:"Wirte Once, Run Anywhere"
  • 1996.1.23 JDK1.0, 第一个正式版本的运行环境,JDK1.0 提供一个纯解释执行的Java虚拟机(Sun Classic VM)
  • 1996.4 10个最主要的操作系统供应商申明将在其产品中嵌入Java 技术
  • 1997.2.19 Sun 公司发布 JDK1.1: JAR文件格式,JDBC,JavaBeans, RMI. 新增加的语法: 内部类,反射
  • 1998.12.4 JDK 1.2, EJB, Java plug-in,Java IDL, Swing. 新增strictfp和集合类. 将Java体系拆为3个
    • 1 J2SE(Java 2 Platform, Standard Edition)--桌面应
    • 2 J2EE(Java 2 Platform, Enterprise Edition) -- 企业级开发
    • 3 J2ME(Java 2 Platform, Micro Edition) -- 移动终端开发
  • 1999.4.27 发布HotSpot VM, 由 1997 Sun 收购 Longview Technologies 而来. 作为JDK1.2的附加程序
  • 2000.5.8 JDK 1.3, HotSpot 为默认虚拟机, 相对于JDK1.2, 主要是类库的改变,JNDI开始作为平台级服务.Java 2D API改进, Java Sound类库, 之后大约每隔两年发布一个JDK的主版本,以动物命名,期间的修正版本以昆虫命名.
  • 2002.2.13 JDK 1.4 , 走向成熟的一个版本.新特性: **正则表达式, 异常链, NIO, 日志类, XML解析器和 XSLT转换器. **
  • 2004.9.30 JDK 1.5
    • 1 语法易用性: 自动装箱,泛型,动态注解,枚举,可变长参数,遍历循环.
    • 2 虚拟机和API: Java的内存模型的改进(Java Menory Model, JMM), 提供java.util.concurrent并发包
  • 2006.12.11 JDK 1.6 Sun 终结了从JDK1.2开始已经有8年历史的J2EE, J2SE, J2ME命名,启用 Java SE6, Java EE6, Java ME6命名. JDK1.6的改进:
    • 1 提供动态语言支持(通过内置Mozilla JavaScript Rhino引擎)
    • 2 提供编译API和微型HTTp服务器API
    • 3 Java 虚拟机:锁与同步, 垃圾收集,类加载等方面的算法
  • 2006.11.13 Sun 公司宣布将Java 开源, 并建立OpenJDK组织对源码进行独立管理. OpenJDK 几乎包括了Sun JDK的全部代码. 在JDK1.7中, Sun JDK 和 OpenJDK 除了代码头文件的版权注释外,代码基本完全一样,所有 OpenJDK 7 与 Sun JDK 1.7 本质上就是同一套代码库开发的产品.
  • JDK1.7 设置了10个里程碑,但由于各种原因未能按计划完成. 在JDK1.7开发期间,Sun公司因为在技术竞争和商业竞争中陷入泥潭,无力推动JDK的研发工作,Oricle 公司收购后宣布"B计划", 将原本计划在JDK1.7实现的Lambda,Jigsaw和Coin项目延迟到 JDK1.8. 最后,JDK1.7的改进: 提供新的G1收集器, 加强对非Java语言的调用支持, 升级类加载架构.

1.4 Java 虚拟机发展史

1.4.1 Sun Classic / Exact VM

1.4.2 Sun HotSpot VM

是Sun JDK 和 OpenJDK 中所带的JVM, 目前使用最广泛的虚拟机,最初由 longview technologies 公司设计,1997年被Sun公司收购.
HotSpot VM 的热点代码探测能力可以通过执行计数器找出最具有编译价值的代码,然后通知JIT编译器以方法为单位进行编译.
在最优化的程序响应时间与最佳执行性能中取得平衡.

2008-2009年,Oracle分别收购了BEA公司和Sun公司,这样Oracle就同时拥有了两款优秀的虚拟机:JRockit VM 和 HotSpot VM, 在HotSpot的基础上, 移植JRockit的优秀特性.例如JRockit的垃圾回收器和MissionControl服务, HotSpot的JIT编译器与混合的运行时系统.

1.4.3 Sun Mobile-Embedded VM / Meta-Circular VM

1.4.4 BEA JRockit/ IBM J9 VM

1.4.4 Azul Vm / BEA Liquid VM

1.4.6 Apache Harmony / Google Android Dalvik VM

1.4.7 Microsoft JVM

1.5 展望Java技术的未来

1.5.1 模块化

1.5.2 混合语言

1.5.3 多核并行

1.5.4 进一步丰富语法

1.5.5 64位虚拟机

1.6 实战: 自己编译SDK

1.7 本章小结

本章介绍了Java技术体系的过去,现在以及未来的一些发展趋势,以及自己编译JDK. 在了解Java技术的来龙去脉后,后面的章节将分为4部分来介绍Java在
内存管理,Class文件结构与执行引擎,编译器优化以及多线程并发方面的实现原理.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容