一、java发展历史及版本介绍
java的起源:
20世纪90年代,硬件领域出现了单片式计算机系统,使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市
场先机,在1991年成立了一个称为Green的项目小组,专攻计算机在家电产品上的嵌入式应用。其中项目组成员中包含大名鼎鼎的詹姆斯·高斯林
由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但c++语言对单片机系统而言,过于复杂和庞大,另外c++语言不能跨平台运行。所以项目组决
定根据嵌入式软件的要求,对c++语言进行改造。去除了C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言(也就
是java语言的前身)。
另外为了跨平台,在开发Oak语言以前,项目组先定义了符合嵌入式应用需要的二进制机器码指令系统(即后来成为“字节码”指令系统)。设想把此指令系统嵌入硬件,然
后Oak语言基于此指令系统运行。以实现跨平台。PS:话说sun挺狠。想控制单片机市场。先让生产硬件的厂商嵌入sun的指令系统。然后用sun开发的Oak语言开发嵌入式应
用。
1992年的夏天,当Oak语言开发成功后,sun向硬件厂商演示了项目组开发全套系统。包括Green操作系统、Oak语言、类库和硬件。忽悠广大硬件厂商使用sun的产品开发
硬件。但是sun的如意算盘打错了。硬件厂商并未对此产生多大的兴趣。他们认为。在对Oak语言还不了解的情况下。就生产基于sun指令系统的硬件,风险太大。所以Oak也就
被搁置下来了。
java的诞生:
转眼到了1995年,互联网的蓬勃发展给了Oak机会。业界为了使死板单调的静态网页能够“灵活”起来,急需一种软件技术来开发能够使网页动起来的小程序。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力来开发这种技术。这个时候,Sun公司想起了那个被搁置起来很久的Oak,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统。
于是,Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet,并将Oak更名为Java(在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语)。
5月23日,Sun公司在Sun world会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。至此,java才算是正式诞生了。并不断发展演变至今。
java版本历史:
1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。
1996年10月,Sun公司发布了Java平台的第一个即时(JIT)编译器。
1997年2月,JDK 1.1面世,在随后的3周时间里,达到了22万次的下载量。
1997年4月,Java One会议召开,参会者逾一万人,创当时全球同类会议规模之纪录。
1998年12月8日,第二代Java平台的企业版J2EE发布。
1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(用于移动环境)、J2SE(用于桌面环境);J2EE(用于服务器环境)。
1999年4月27日,HotSpot虚拟机发布。发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后版本的默认虚拟机。
2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司Mac OS X的工业标准的支持。
2001年9月24日,J2EE1.3发布。
2002年2月26日,J2SE1.4发布。自此Java的计算能力有了大幅提升,与J2SE1.3相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。
2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费开源软件对外发布。
2007年3月,全世界所有的开发人员均可对Java源代码进行修改。
2009年,甲骨文公司宣布收购Sun。
2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职。
2011年,甲骨文公司举行了全球性的活动,以庆祝Java7的推出,随后Java7正式发布。
2014年,甲骨文公司发布了Java8正式版。
2017年,甲骨文公司预计发布Java9正式版。
二、java语言特点介绍
简单性
Java原本基于c++改进而来,并去除了c++的很多复杂特性和不常用特性。像多继承、结构、指针等。
面向对象
Java是一门面向对象的语言。java全面支持面向对象的所有特性。
分布性
Java设计成支持在网络上应用,它是分布式语言。Java支持各种层次、各种方式的网络连接,所以用户可以设计成分布式的客户机和服务器。特别适合做大型的行业应用
编译和解释性 。Java代码被编译生成字节码(byte-code),而不是通常的机器码。运行在虚拟机中。它既有编译型语言的特点又有解释型语言的特点。很好的结合了两者的优势。
稳健性
1、Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。
2、另外Java不支持指针并添加了垃圾回收机制,不用再考虑内存的申请和释放,可以有效防止内存管理错误。
3、Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。
4、Java中支持异常处理机制,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
安全性
Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能伪造指针去操作存储器。并且编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。
可移植性
Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为 Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSI C语言编写。
高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快。但比解释语言快。有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
并发性
Java是多线程语言,它提供支持多线程的执行,能处理不同任务,使具有多线程的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线程、运行线程、停止线程和检查线程状态的方法。并且java也很好的支持线程同步和异步。
动态性
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
三、java应用领域介绍
1、Android应用 大多数的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。
2、金融服务行业的服务器应用程序 Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,比如:高盛、花旗等等全世界最牛的金融机构都是使用Java来编写电子交易系统。因为相对而言,Java较安全。Java被广泛用于在服务器端开发,这些应用多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。
3、Java Web应用程序 Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,比如:SpringMVC,spring、mybatis等。即使是简单的 servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。
4、嵌入式领域 Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。原本java就是为嵌入式诞生的。
5、大数据技术 Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的Hbase和Accumulo以及 ElasticSearchas。
6、高频交易的空间 Java平台提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。
7、 科学应用 Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。