转自:https://www.cnblogs.com/guoqingyan/p/5667064.html
发展历程:
1995年5月23日,Java语言诞生;
1996年1月,第一个JDK-JDK1.0诞生;
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术;
1996年9月,约8.3万个网页应用了Java技术来制作;
1997年2月18日,JDK1.1发布;
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录;
1997年9月,JavaDeveloperConnection社区成员超过十万;
1998年2月,JDK1.1被下载超过2,000,000次;
1998年12月8日,Java 2企业平台J2EE发布 (J2EE1.2);
1999年6月,SUN公司发布Java三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME);
2000年5月8日,JDK1.3发布;
2000年5月29日,JDK1.4发布;
2001年6月5日,Nokia宣布到2003年将出售1亿部支持Java的手机;
2001年9月24日,J2EE1.3发布;
2002年2月26日,J2SE1.4发布,此后Java的计算能力有了大幅提升;
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0;
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”: J2ME更名为Java ME, J2SE更名为Java SE, J2EE更名为Java EE;
2006年12月,SUN公司发布JRE6.0;
2009年12月,SUN公司发布Java EE 6;
2010年11月,由于甲骨文对Java社区的不友善,因此Apache扬言将退出JCP;
2011年7月,甲骨文发布Java SE 7;
2014年3月,甲骨文发表Java SE 8;
Java SE 9 Oracle宣布 2016年9月发布
J2ME J2ME——Java 2 Micro Edition用于嵌入式Java消费平台;
2000年12月,Sun公司宣布,它将推出Java2平台Micro(J2ME)开发版和适用于Palm OS平台的MID(Mobile Information Device)规范概要。这些新品的推出将使250多万Java技术开发商更容易为通用的Palm OS平台创建应用程序。此外,Sun和Palm公司还将通过JCP(Java CommunityProcess)项目与业界的其它专家一起为个人数字助理(PDA)确定编程接口的技术规范。开发者因为能把他们的Java技术经验用在Palm OS平台上配置解决方案而受益;终端用户因为能将采用J2ME编写的应用程序用于新的企业,商务,娱乐和通信等解决方案而受益。有了相对于Palm OS平台的Java技术发展规划,开发商们将会拥有标准化的适用于业界应用的解决方案。
J2SE J2SE——Java 2 Standard Edition 用于工作站,PC机的Java标准平台。
在Java2平台JDK1.2发布之后,Sun公司又相继发布了j2sdk1.3,j2sdk1.3.1,2001年9月发布了j2sdk1.4Beta2版。他们都是支持式计算的免 费的Java2标准平台。Java2标准平台体现了Sun公司的开放精神,被称为“互联网上的世界语”,公布于互联网上供大家免费享用,甚至连源代码也不保密,可以在网上免费下载。
J2EE J2EE——Java2 Enterprise Edition可扩展的企业级应用Java2平台。
2001年1月,Sun公司在旧金山召开了关于Java2平台企业版(J2EE)的新闻发布会。J2EE是分布式企业软件组件架构的规范,具有Web性能,具有更高的特性,灵活性,简化的集成性,便捷性,以及J2EE服务器之间的互操作性。目前已有9个取得J2EE技术许可的公司推出了基于J2EE技术的兼容性产品。这些公司都通过了J2EE兼容性测试(CTS)中的各项测试,满足了J2EE技术品牌中的所有要求。当前,有25个公司持有J2EE平台的许可证,他们代表了应用服务器市场的76%~90%的厂商。 SUN MicroSystem 公司总裁 Scott McNealy 认为 Java 为 Internet 和 WWW 开辟了一个崭新的时代。 Java 的诞生必将对整个计算机产业产生深远的影响!
JDK Version 1.0
- 开发代号为Oak(橡树),于1996-01-23发行。
JDK Version 1.1
- 于1997-02-19发行。
- 引入的新特性包括:
- 引入JDBC(Java Database Connectivity);
- 支持内部类;
- 引入Java Bean;
- 引入RMI(Remote Method Invocation);
- 引入反射(仅用于内省)。
J2SE Version 1.2
- 开发代号为Playground(操场),于1998-12-08发行。
- 引入的新特性包括:
- 引入集合(Collection)框架;
- 对字符串常量做内存映射;
- 引入JIT(Just In Time)编译器;
- 引入对打包的Java文件进行数字签名;
- 引入控制授权访问系统资源的策略工具;
- 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库;
- 引入Java 插件;
- 在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;
- 在Applet中添加声音支持。
J2SE Version 1.3
- 开发代号为Kestrel(红隼),于2000-05-08发行。
- 引入的新特性包括:
- 引入Java Sound API;
- jar文件索引;
- 对Java的各个方面都做了大量优化和增强。
J2SE Version 1.4
- 开发代号为Merlin(隼),于2004-02-06发行(首次在JCP下发行)。
- 引入的新特性包括:
- XML处理;
- Java打印服务;
- 引入Logging API;
- 引入Java Web Start;
- 引入JDBC 3.0 API;
- 引入断言;
- 引入Preferences API;
- 引入链式异常处理;
- 支持IPv6;
- 支持正则表达式;
- 引入Image I/O slot machine API。
Java Version SE 5.0
- 开发代号为Tiger(老虎),于2004-09-30发行。
- 引入的新特性包括:
- 引入泛型;
- 增强循环,可以使用迭代方式;
- 自动装箱与自动拆箱;
- 类型安全的枚举;
- 可变参数;
- 静态引入;
- 元数据(注解);
- 引入Instrumentation。
Java Version SE 6
- 开发代号为Mustang(野马),于2006-12-11发行。
- 引入的新特性包括:
- 支持脚本语言;
- 引入JDBC 4.0 API;
- 引入Java Compiler API;
- 可插拔注解;
- 增加对Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持;
- 继承Web Services;
- 做了很多优化。
Java Version SE 7
- 开发代号是Dolphin(海豚),于2011-07-28发行。
- 引入的新特性包括:
- switch语句块中允许以字符串作为分支条件;
- 在创建泛型对象时应用类型推断;
- 在一个语句块中捕获多种异常;
- 支持动态语言;
- 支持try-with-resources;
- 引入Java NIO.2开发包;
- 数值类型可以用2进制字符串表示,并且可以在字符串表示中添加下划线;
- 钻石型语法;
- null值的自动处理。
Java Version SE 8
- 开发代号是Spider(蜘蛛),于2014-03-18发行。
- 支持 lambda支持;
- 增强日期与时间API的功能;
- 对垃圾回收的性能也进行了改进;
- 并且移除了permgen区。
- Lambdas表达式与Functional接口
- 接口的默认与静态方法
- 方法引用
- 重复注解
- 更好的类型推测机制
- 扩展注解的支持
Java语言的主要特点: Java语言有下面一些特点 :简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。
1.面向对象
Java语言的设计集中于对象及其接口 ,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法 ,实现了模块化和信息隐藏 ;而类则提供了一类对象的原型 ,并且通过继承机制 ,子类可以使用父类所提供的方法 ,实现了代码的复用。
2.分布性
Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议 ,用户 可以通过 URL地址在网络上很方便地访问其它对象。
3.简单性
Java语言是一种面向对象的语言 ,它通过提供最基本的方法来完成指定的任务 ,只需理解一些基本的概念 ,就可以用它编写出适合于各种情况的应用程序。 Java略去了运算符重载、多重继承等模糊的概念 ,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外 ,Java也适合于在小型机上运行 ,它的基本解释器及类的支持只有 40KB左右 ,加上标准类库和线程的支持也只有 215KB左右。库和线程的支持也只有 215KB左右。
4.鲁棒性
Java在编译和运行程序时 ,都要对可能出现的问题进行检查 ,以消除错误的产生。它提供自动垃圾收集来进行内存管理 ,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制 ,在编译时,Java提示出可能出现但未被处理的例外 ,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误 ,防止动态运行时不匹配问题的出现。
5.可移植性
与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。同时 ,Java的类库中也实现了与不同平台的接口 ,使这些类库可以移植。另外,Java编译器是由 Java语言实现的 ,Java运行时系统由标准 C实现 ,这使得Java系统本身也具有可移植性。
6.体系结构中立
Java解释器生成与体系结构无关的字节码指令 ,只要安装了 Java运行时系统 ,Java程序就可在任意的处理器上运行。这些字节码指令对应于 Java虚拟机中的表示 ,Java解释器得到字节码后 ,对它进行转换 ,使之能够在不同的平台运行。
7.安全性
用于网络、分布环境下的 Java必须要防止病毒的入侵。 Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现 ,这样就防止程序员使用"特洛伊 "木马等欺骗手段访问对象的私有成员 ,同时也避免了指针操作中容易产生的错误。
8.解释执行
Java解释器直接对 Java字节码进行解释执行。字节码本身携带了许多编译时信息 ,使得连接过程更加简单。
9.动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持多重继承 ,使之比严格的类继承具有更灵活的方式和扩展性。
10.多线程
多线程机制使应用程序能够并行执行 ,而且同步机制保证了对共享数据的正确操作。通过使用多线程 ,程序设计者可以分别用不同的线程完成特定的行为 ,而不需要采用全局的事件循环机制 ,这样就很容易地实现网络上的实时交互行为。
11.高性能
和其它解释执行的语言如 BASIC、 TCL不同 ,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码 ,从而得到较高的性能。
原文地址:https://www.cnblogs.com/celine/p/10263796.html