一 JAVA诞生及特点
上世纪90年代初,SUN公司的James Gosling领导的Green项目,着力打造一个分布式的、可以在消费类电子产品(如电视机顶盒)使用的系统架构。
这种架构中,要求写的代码可以运行在各种消费类电子产品中,即要求代码的中立性、跨平台性。
最初,Green项目使用的C++,但是在研发过程中发现C++并不能很好的适应新的需求。于是,这些高人对C++编译器做了改写,仍然不太理想,不太符合跨平台的特性。 于是,大家决定重起炉灶,开始研发一种新的语言,即JAVA。
对于JAVA语言与C++相比的核心优势是:跨平台性。
二 JAVA的发展
无心插柳柳成荫!90年代中末期,有一个改变世界的大事出现了:互联网的爆发式增长。在传统产业,例如钢产
业要想取得产量翻番,那需要很多年的时间。但是,在互联网行业都是呈指数级增长,爆炸式的增长。google可以在
短短几年就增长到上千亿美元市值。
互联网将各种各样的电脑连到了一起,这时,我们发现电脑的操作系统各种不同。因此,急需一种跨平台的语言,
通过它编写的程序可以在各种平台上运行。JAVA正好符合这种需求。使用JAVA编写的applet程序给了90年代的人们
极大的震撼,于是JAVA迎来了他的黄金时代!
JAVA诞生后,经历了如下版本的发展变化:
• 1991年,Sun公司的Green项目,Oak
• 1995年,推出Java测试版
• 1996年,JDK1.0
• 1997年,JDK1.1
• 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2
• 2004年,J2SE 5.0 (1.5.0) Tiger老虎
• 2006年,J2SE 6.0 (1.6.0) Mustang野马
• 2011年,JAVASE7.0
三 JAVA的核心特性及优势
简单性
就是c++语法的纯净版。没有头文件,指针运算,结构,联合,操作符重载,虚基类等等。由于语法基于c,因此
学习起来完全不费力。
面向对象
面向对象是一种程序设计技术,他将重点放在数据(即对象)和对象之间的接口上。
可移植性(跨平台性)
这是JAVA的一个重要的优势。JAVA代码或者说字节码、二进制码可以跨平台的移植,而不用管具体的操作系统和
硬件环境。JAVA本身就是面向网络的,只有在网络环境中才能显示出他的优势,比如:现在我有一个网络环境,要让
我的笔记本和手机交互,笔记本环境是windows发出一个让手机定时录音的JAVA代码,手机只有简单Linux内核操作系
统,照样可以完美的执行这个代码。
“一次编写,随处运行”:“write once, run anywhere”
JAVA在设计时就很注重移植和跨平台性。比如:JAVA的Int永远都是32位。不像c++可能是16,32,可能是根据
编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
高性能
JIT(JUST IN TIME)即时编译。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调
用。这样的话,使JAVA程序的执行效率大大提高,某些代码甚至接待c++的效率。随着这种技术的一天天完善,也许
有一天会超越编译代码的效率。
分布式
JAVA是为internet的分布式环境设计的,因为他能够处理tcp/ip协议。事实上,通过url访问一个网络资源和访问本
地文件是一样简单的。Java还支持远程方法调用(RMI,remote method Invocation),使程序能够通过网络调用方法。
动态性
就是在需要时将某些代码添加到正在运行的程序中。反射机制。当需要把某些代码添加到正在运行的程序中时,
动态性是一个非常重要的特性。Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所
需要的类,这是C++语言进行面向对象程序设计所无法实现的
多线程
多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原
因之一。
安全性
Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以构建防病毒,
防篡改的系统。
健壮性
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请
与释放等)。Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引
起任何问题。不过,即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该例外抛弃。
再通过异常处理机制,程序就会发现这类例外,并加以处理。