1.为什么叫Java?
为何称之为Java?(Why) "Java"是美国SUN计算机公司Java发展小组历经无数次的激烈讨论之后才被选择出。 生动(Liveliness)、动画(Animation)、速度
(Speed)、交互性(Interactivity)为当 初选择名字时所欲表达出的特色。"Java"是在无数的建议中脱颖而出的,而"Java" 不是由几个单字的首字所组成, 而是
从许多程序设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。
2.谁开发了Java?
Java是美国SUN计算机公司Java发展小组开发的,早期的成员(绿色工程)是Patrick Naughton, James Gosling, & Mike Sheridan,而现在大家较为熟悉的成
员是James Gosling。
3.Java的发展历史?
由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名
为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅
速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems
1991 绿色计划 (Green Project)
1991年1月
一个名为“Green Project”的项目启动。该项旨在为家用电器提供支持,使这些电器智能化并且能够彼此交互。而且这些家电可以由
远程客户端控制。Bill Joy、James Gosling、Mike Sheradin和Patrick Naughton是该项目的核心成员。
橡树(Oak)
1991年2月
James Gosling是该计划的软件负责人和架构师。他最初的目标是为“绿色计划”找到一个适合的语言来运行。他选择了C++,并对有
需要的地方进行了扩展。但 是这些功能不能满足计划的需要,因此建立一门新的语言成为当务之急。他开始夜以继日地忙于新语言
的开发,并将其命名为“Oak”,因为他办公室窗外有一棵 橡树。
硬件原型
1991年4月
SPARC工作站10的架构师 Ed Fran k加入到绿色计划中,并领导硬件开发工作。该计划的目的是开发一个硬件原型,展示“绿色计
划”的功能。该计划命名为star-seven(*7)。*7计 划的成员有Craig Forrest、Al Frazier、Ed Frank、James Gosling、Patrick Naughton、Joe
Parlang、JonPayn、 MikeSheridan和Chris Warth。
解释器
1991年6月 James Gosling开发了Oak的解释器。
1992 Java命名
1992年3月
由于Oak已被用作另一种已存在的编程语言名称,因此必须选一个新的名字——它就是Java,灵感来源于咖啡。
Star-Seven原型
1992年9月
Star-seven(*7)带GUI的工作原型完成了,并向大家展示了其功能。与此同时绿计划也建立了一套新的语言、一个操作系统、一个硬
件平台 和一套接口。下面是如*7原型的PDA样机,并由James Gosling亲自演示它。
FirstPerson
1992年11月
Green计划被转化成了“FirstPerson有限公司”,并作为一个独立实体合并到Sun的子公司。
1993 电视机顶盒
1993年2月
FirstPerson试图从时代华纳获得一个电视机顶盒交互系统的一揽子订单。在那时,由于绿色计划不是很成功,随即失去了时代华
纳的订单。于是开发的重心从家庭消费电子产品转到了电视盒机顶盒的相关平台上。
应用开发平台
1993年9月 Arthur Van Hoff加入了开发组,他的工作是交互平台上的应用开发。
1994
Liveoak计划
1994年6月
实际上电视交互市场并没有给FirstPerson公司带来收益,最终它倒闭了。员工都合并到Sun公司。Liveoak计划启动了,它的目标
是使用Oak语言设计出一个操作系统。
网络浏览器时代
1994年7月
Patrick Naughton设计了一个Web浏览器,该浏览器内部使用Java。Liveoak计划进行了调整,使得Oak语言支持互联网。
HotJava
1994年9月
Naughton和Jonatha Payne开始从事名为HotJava的以Java语言为基础的网页浏览器项目,该项目获得了管理层的广泛认可。
Java编译器
1994年10月
由Van Hoff编写的Java编译器用于Java语言,之前的编译器由James Gosling使用C语言编写。
1995
正式发布
1995年5月 在SunWorld大会,Sun公司正式介绍了Java和HotJava。
Netscape支持
1995年6月
一次重大突破——Netscape在它的浏览器中支持Java。
HotJava
1995年9月 由Sun组织的第一次Java开发者大会在纽约召开。
Oracle支持
1995年10月 Oracle在其将发布的WWW网页系统中包含了一个兼容的Java浏览器。
Microsoft支持
1995年12月 更广泛行业接受的信号,Microsoft在其IE浏览器中支持Java。
1996
1.0版本发布
1996年1月
JDK1.0版本发布
1997
1.1版本发布
1997年2月
JDK1.1版本发布。主要特点是JDBC、RMI、内部类。
1998
1.2版本发布
1998年12月
JDK1.2版本发布,代号Playground。该版本通常被称为Java 2版本,是见证重大转变的最流行版本。主要特点是集合框架、JIT编
译器、策略工具、Java基础类、Java二维类库和JDBC改进。
2000
1.3版本发布
2000年5月
JDK1.3版本发布,代号Kestrel。
2002
1.4版本发布
2002年2月
J2SE1.4版本发布,代号Merlin。主要特点是XML处理、Java打印、支持日志、JDBC 3.0、断言和正则表达式处理。
2004
5.0版本发布
2004年9月
J2SE5.0发布,代号Tiger。主要特点是支持泛型、自动装箱、注释处理、Instrumentation。
2006
Java/Jdk (半)公开源码
2006年11月
Java宣布将会公开源码,引起了广泛争议。由于设计的证书违背了通常的源码开放条款。或许我们可以称其为半公开。
6.0版本发布
2006年12月
Java SE 6版本发布,代号Mustang。主要特点是支持脚本语言、JDBC4.0、Java编译API并整合了Web服务。
2010
Oracle收购Sun
2010年1月 Oracle收购Sun公司及其产品。现在Java由Oracle控制。
苹果不再支持Java
2010年10月 Steve Jobs声称,苹果将来不再支持Java。
2011
7.0版本发布
2011年7月
Java SE 7.0版本发布,代号Dolphin。这个版本距上次发布有5年之久,并且只有这个版本花费了这么久。主要特点是支持动态语
言、Java nio包、多重异常处理、try with resourece功能和诸多小的增强。
2014年
甲骨文公司发布了Java8正式版
4.Java的优劣势?
优势:Java适合团队开发,软件工程可以相对做到规范。由于Java语言本身的极其严格语法的特点,Java语言无法写出结构混
乱的程序。这将强迫程序员的代码软件结构的规范性。这是一个很难比拟的优势。
劣势:J2EE的架构很完美,第一版软件可以做满意,但是很不适合互联网模式的持续不断修改。互联网软件工程管理上的不
足,持续的修修补补导致架构的破坏。
5.关键字:
关键字 | 含义 |
abstract | 抽象类或方法 |
assert | 用来查找内部程序错误 |
break | 跳出一个switch或循环 |
byte | 8位整数类型 |
case | switch的一个分支 |
catch | 捕获异常的try块子句 |
class | 定义一个类类型 |
continue | 在循环末尾继续 |
default | switch的缺省语句 |
do | do/while循环最前面的语句 |
double | 双精度浮点数类型 |
else | if语句的else子句 |
enum | 枚举类型 |
extends | 定义一个类的父类 |
final | 一个常量,或不能覆盖的一个方法 |
finally | try块中总会执行的部分 |
float | 单精度浮点数类型 |
for | 一个循环类型 |
if | 一个条件语句 |
implements | 定义一个类实现的接口 |
import | 导入一个包 |
instanceof | 测试一个对象是否是某个类的实例 |
int | 32位整型数 |
interface | 接口,一种抽象类型,仅有方法 和常量的定义 |
long | 64位长整数型 |
native | 由宿主系统实现的一个方法 |
new | 分配新的类实例 |
null | 一个空引用 |
package | 包含类的一个包 |
private | 表示私有字段,或者方法等, 只能 从类内部访问 |
protected | 表示保护类型字段 |
public | 表示共有属性或者方法 |
return | 从一个方法中返回 |
short | 16位整数类型 |
static | 这个特性是这个类特有的, 而不属于这个类的对象 |
strictfp | 对浮点数计算使用严格的规则 |
super | 超类对象或构造函数 |
switch | 选择语句 |
synchronized | 对线程而言是原子的方法或代码块 |
this | 当前类的一个方法或构造函数 的隐含参数 |
throw | 抛出一个异常 |
throws | 一个方法可能抛出的异常 |
transient | 标志非永久性的数据 |
try | 捕获异常的代码块 |
void | 标记方法不返回任何值 |
volatile | 标记字段可能会被多个线程同 时访问,而不做同步 |
while | 一种循环 |