1991年 - Green计划 - 詹姆斯·高斯林
为了抢占单片机先机,Sun公司 在1991年成立 “Green”计划,目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构,由詹姆斯·高斯林主导。他们起初打算采用C语言,但C和可用API在某些方面存在问题,如缺少垃圾回收系统,可移植安全性,分布程序设计和多线程功能等。
而他们需要易于移植到各个平台。于是开发了一种集C语言和Mesa语言搭成的新语言,并用他办公室外的树来命名,将其命名为“Oak”(橡树)。
1992年 - FirstPerson有限公司
1992年夏天,“Green“计划已完成大部分,包括Green操作系统,Oak程序设计语言,类库等。同年11月,”Green“计划被独立为Sun公司的一个全资子公司---”FirstPerson“有限公司。
时代华纳发布了一个关于电视机顶盒的征求提议书,FirstPerson提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多地控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司再并回SUN公司。
1994年 - Mosaic浏览器诞生 - WebRunner
1994年下半年,由于Internet的迅猛发展和环球信息网WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生,詹姆斯·高斯林团队将该技术应用于万维网。
作为原型,帕特里克·诺顿 用Oak语言编写了一个小型万维网浏览器,WebRunner 。同年,商标搜索显示,Oak已被一家显卡制造商注册,因此团队找到了一个新名字,将Oak改名为 Java 。一种比较可信的说法是这个名字是出于对咖啡的喜爱,所以以Java咖啡来命名。
1995年 - SunWorld大会 - Java 1.0发布
1995年5月23日,在SunWorld大会上正式发布 Java 1.0 版本,至此Java语言诞生了,并首次提出了“Write Once,Run Anywhere”(一次编译,到处运行)的口号。
1996年 - JDK1.0
在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个的强大的开发库支持还行。1996年1月23日,JDK 1.0 发布,Java语言有了第一个正式版本的运行环境。JDK 1.0提供了一个纯解释执行的Java虚拟机实现(Sun Classic VM)。JDK 1.0版本的代表技术包括:Java虚拟机、Applet、AWT等。
1997年 - JDK1.1
Sun公司发布了Java1.1版本,相比于1.0版本,1.1版本最大的改进就是增加了JIT(即时编译器),JIT和传统的编译器不同,传统的编译器是编译一条,运行完后再将其扔掉,而JIT会将经常编译的指令保存在内存中,在下次调用时就不需要再编译了,这样在效率上有了非常较大大的提升。此外,Java技术的一些最基础的支撑点 也都是在Java1.1版本中发布的,例如:JAR文件格式、JDBC、JavaBeans、RMI、内部类(Inner Class)、反射(Reflection)。
1998年12月4日 - JDK1.2
1998年12月4日,JDK迎来了一个里程碑式的版本JDK 1.2,工程代号为Playground(竞技场),Sun在这个版本中把Java技术体系拆分为3个方向,分别是
- 面向桌面应用开发的J2SE(Java 2 Platform, Standard Edition)
- 面向企业级开发的J2EE(Java 2 Platform, Enterprise Edition)
- 面向手机等移动终端开发的J2ME(Java 2 Platform, Micro Edition)
自从JDK 1.3开始,Sun维持了一个习惯:大约每隔两年发布一个JDK的主版本,以动物命名,期间发布的各个修正版本则以昆虫作为工程名称。
Java之后的迭代发展
2000年5月8日,Java1.3发布,工程代号为Kestrel(美洲红隼)。相比于1.2来说,Java1.3改进主要表现在一些类库上(如数学运算和新的Timer API等),增加了JNI的支持,这使得Java可以访问本地资源了、支持XML了。此外,在Java1.3大版本中,还有个修正版Java1.3.1,工程代号为Ladybird(瓢虫),于2001年5月17日发布。
2001年6月5日,Nokia宣布到2003年将出售1亿部支持Java的手机;
时间来到了2002年2月13日,Sun公司发布了Java历史上最为成熟的版本Java1.4,工程代号为Merlin(灰背隼)。在进入21世纪以来,在.NET平台和Java平台之间发生了一次声势浩大的孰优孰劣的论战,Java的主要问题就是性能。不过,随着Java1.4的诞生论战就此终结,Sun公司集中主要的精力来解决性能问题。值得关注的是,Java1.4还发布了很多新的特性,如正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等。
2004年9月30日,Java1.5发布,工程代号Tiger(老虎)。在Java1.5中出现了我们熟悉的语法,例如:自动拆装箱、泛型、动态注解、枚举、可变长参数,遍历循环(foreach循环)等。在虚拟机和API层面上,这个版本改进了Java的内存模型(Java Mozilla Model,JMM)、提供了java.util.concurrent并发包等。
在2006年11月13日的JavaOne大会上,Sun公司宣布最终会将Java开源,并在随后的一年多时间内,陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。
2006年12月11日,Java1.6发布,工程代号Mustang(野马)。这个版本尤其特殊,Sun公司终结了从Java1.2开始已经有8年历史的J2EE、J2SE、J2ME的命名方式,启用java SE 6、Java EE 6、Java ME 6的命名方式。在这个版本中,Java虚拟机做了大量改进,包括锁与同步、垃圾收集、类加载等。
2009年4月20日,Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有(Java语言本身并不属于哪间公司所有,它由JCP组织进行管理,尽管JCP主要是由Sun公司或者说Oracle公司所领导的)。由于此前Oracle公司已经收购了另外一家大型的中间件企业BEA公司,在完成对Sun公司的收购之后,Oracle公司分别从BEA和Sun中取得了目前三大商业虚拟机的其中两个:JRockit和HotSpot,Oracle公司宣布在未来1~2年的时间内,将把这两个优秀的虚拟机互相取长补短,最终合二为一。可以预见在不久的将来,Java虚拟机技术将会产生相当巨大的变化。
2011年7月28日,Oracle公司发布Java SE 1.7
2014年3月18日,Oracle公司发表Java SE 1.8
Java语言有下面一些特点 :简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。
Java分支
上面,我们说到了Java在1.2版本时,被拆分成了3个方向J2SE(Java 2 Platform,Standard Edition)、J2EE(Java 2 Platform, Enterprise Edition)和J2ME(Java 2 Platform,Micro Edition)。那么,这三个方向代表什么含义呢?
Java ME(Micro Edition):支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,支持早期的移动终端智能设备,这个版本以前称为J2ME。已经被淘汰了,现在开发也基本不用了。
Java SE(Standard Edition):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,这个版本以前称为J2SE。Java SE为Java EE和Java ME提供了基础。
Java EE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、CRM应用)的Java平台,除了提供Java SE API外,还对其做了大量的扩充并提供了相关的部署支持,这个版本以前称为J2EE。
说的直白点,Java ME已被淘汰,无需了解;Java SE就是我们刚开始学习Java所接触到的版本,包含了集合、数组、IO等基础知识,包含了Java的核心API;Java EE就是我们开发后台程序用到的版本,包含常spring、servlet、jdbc、springboot等,主要适用于创建服务器应用程序;
Java环境
说到Java的环境,那么就得来解释下JDK和JRE了!
简单的说,JDK是用于支持Java程序开发的最小环境;而JRE,则是支持Java程序运行的最小环境。所以很明显,JRE是JDK的子集;
可以看出,JRE作为运行最小环境,只需要虚拟机和JavaSE API,即可将字节码运行起来;
而JDK作为开发最小环境,则需要向javac之类的工具,来进行代码编译等操作,另外还包括一些Java程序监控的工具Java VisualVM, JConsole等。
也就是说JRE只能负责运行,JDK则全活!!!
网友评论