Java学习1 - java 历史
Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等。Sun内部人员把这个项目称为
Green,那时World Wide Web还在图纸上呢。该小组的领导人是James Gosling,41岁。于1984年加盟Sun Microsystem公司,以前在一家IBM研究机构工作。他是Sun NeWs窗口系统的总设计师,虽然当时NeWs在技术上非常成功,但在商业上却完全失败,没有了Java那么好的运气。
Gosling是一位非常杰出的程序员,GOSMACS也是Gosling写的,它是第一个用C实现的EMACS的文本编辑器。
在研究开发过程中,Gosling 深刻体会到消费类电子产品和工作站产品的开发哲学之间差异:消费类电子产品要求高可靠、费用低、标准化、
使用简单,而工作站用户要求强大的计算能力,而不在此乎价格以及操作的复杂性。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂
贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。
从C 开始 为了使整个系统与平台无关,Gosling首先从改写C 编译器着手。但是Gosling在改写过程中感到仅C 是无法满足需要的,于是在
1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢? Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这 就是Java语言的前身。(后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java,即爪哇,太平洋上一个盛产咖啡的岛屿的名字)。
Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行软硬件环境,他要建立一个系统,这个系统运行于一个巨大的、
分布的、异质的网络环境中,完成各电子设备之间的通讯与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式。即Java
语言编译后产生的是虚机器码,虚机器码运行在一个解释器上,每一个操作系统均有一个解释器,这样一来,Java就成了平台无关语言。这和
Gosling设计的Sun NeWs窗口系统有着相同的技术味道,在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,
这样便保证了用户界面的良好的可移植性。当Patrick Naughton加入该小组后,整个工作进展神速。Naughton也是Sun公司的技术骨干,曾经是Open Windows的项目的负责人。经过17个月
的奋战,整个系统胜利完成。它是由一个操作系统,一种语言(Java),一个用户界面,一个新的硬件平台,三块专用芯片的构成。而通常情况
下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做一次展示和鉴定,观众的反应是: 在各方面都采用了崭新的、非常
大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的二位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。初战告败
接着,Java项目的工作人员开始做应用规划,着手成立一家公司,从事消费类电子产品的开发,这家公司就是FirstPerson Inc.。公司的第一
个项目就是Time-Warner的投标项目,顶置盒式操作系统和请求式电视技术。虽然FirstPerson Inc.在技术毫不逊色于任何公司,但是由于经营
策略上的失误,败给了SGI。FirstPerson一直到1994年初仍在坚持开发专用的顶置盒式操作系统,但实践证明,这个市场尚未成熟。例如:好
几家交互式有线电视网的实验都以失败告终。 Naughton立即认识到研究方向应该转移。在Naughton的努力下,研究开始向在线服务,CD-ROM和基于网络的台式机方向转移。最后FirstPerson
解散,一部分人去了Sun Interactive开发数字视频数据服务器,而另一部分开始把Java用于基于网络的台式机系统。
Java语言的转折点
到了1994年,WWW已如火如荼的发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台。它应是一种实时性
较高,可靠安全,有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。2 Java语言的历史
这项工作由Naughton和Jonathan Payne负责,到1994年秋天,完成了WebRunner的开发工作。WebRunner是HotJava的前身,这个原型系统展示
了Java 可能带来的广阔市场前景,给SunLab两位领导: Bert SutherLand和Eric Schmidt留下深刻印象,这一点非常重要,因为这两个人是Sun
的首席技术官员。特别是Sun的总裁McNealy对Java抱有坚定的信念,为Java进入WWW立下了汗马功劳。正如McNealy所料,WebRunner改名为
HotJava,并于1995年5月23日发表后,引起了产业界巨大的轰动,Java的地位也随之而得到肯定。McNealy卓越的洞察力和果断的决策,挽救了
这项差点锁进文件柜的技术。 又经过一年的试用和改进,Java 1.0版终于在1996年年初正式发表。
Java已进入了主流计算模式:
目前全球有67%的大型企业在采用Java开发自己的信息系统;200多家公司从Sun公司获得了Java技术许可证;400余个应用取得100%纯Java证书
;Java开发者阵营拥有250万多位会员.... Java从1995年的一个小小的编程开发工具,发展到了今天可驾御从智能卡,小型消费类器件到大型
数据中心的Java平台,其发展速度是惊人的,让我们回顾一下它的发展历程:
1995年3月,Sun公司公布了Java的Alpha1.0a2版本
1995年5月,Java的第一个办公版本发布
1996年1月,Java的第一个开发包JDK v1.0发布1997年2月,Java的开发包Java v1.1发布
1998年12月,Sun公司发布了Java2平台,JDK v1.2发布,Java2平台的发布是Java发展史的新里程碑。
1999年6月,Sun公司重新组织Java平台的继承方法,并将Java企业级应用平台作为发展方向,因此,到今天Java的大家族中已有了下面三个主
要成员:
1. 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 Community Process)项目与业界的其它专家一起为个人数字助理(PDA)确定编程接口的技术规范。开发者因为能把他们的Java技术经验用在Palm OS平台
上配置解决方案而受益;终端用户因为能将采用J2ME编写的应用程序用于新的企业,商务,娱乐和通信等解决方案而受益。有了相对于Palm OS
平台的Java技术发展规划,开发商们将会拥有标准化的适用于业界应用的解决方案。
2. J2SE——Java 2 Standard Edition 用于工作站,PC机的Java标准平台。在Java2平台JDK1.2发布之后,Sun公司又相继发布了j2sdk1.3,j2sdk1.3.1,2001年9月发布了j2sdk1.4Beta2版。他们都是支持分布式计算的免
费的Java2标准平台。Java2标准平台体现了Sun公司的开放精神,被称为“互联网上的世界语”,公布于互联网上供大家免费享用,甚至连源代
码也不保密,可以在网上免费下载。
3. 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 的诞生必将对整个计算机产业产
生深远的影响!
Java学习1 - java 历史的更多相关文章
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- [ Java学习基础 ] Java构造函数
构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...
- [ Java学习基础 ] Java的继承与多态
看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...
- [ Java学习基础 ] Java的抽象类与接口
一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...
- Java学习之Java历史版本
Java有三个版本,标准版Java SE,企业版Java EE,移动版Java ME.按理来说,每一种版本都会有自己的版本号,但是约定俗成:JDK版本号=Java SE版本号=Java版本号,这是因为 ...
- java学习路线图-----java基础学习路线图(J2SE学习路线图)
安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...
- Java学习之Java接口回调理解
Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员 ...
- Java学习笔记 -- Java定时调度工具Timer类
1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...
随机推荐
- 【C++】 struct结构自动对齐的问题
#pragma pack (push) #pragma pack (1) struct XXXX{}; #pragma pack (pop) 这样写就不会自动对齐了. 在写MFC下的winpcap捕a ...
- 空格用法
记录一下,空格的转义字符分为如下几种:平时一般用的是 1. &160#;不断行的空白(1个字符宽度)2. &8194#;半个空白(1个字符宽度)3. &8195#;一个空 ...
- MySQL学习记录--分组与聚集
一.group by 子句 group by 字句可对数据进行分组. 以MySQL5.5的sakila数据库中的film数据表举例:查找出各个电影等级的电影总数 mysql>SELECT rat ...
- Anaconda died after receiving signal 7
安装RHEL6-64时出现如下提示 Anaconda died after receiving signal 7 1 Anaconda是啥 是RedHat.CentOS.Fedora等Linux的安装 ...
- 学习PYTHON之路, DAY 3 - PYTHON 基础 3 (函数)
一 set 集合 (无序且不重复的元素集合) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 删除一项: t.discard('H') t ...
- onclick传递参数
http://zhidao.baidu.com/link?url=rLnWM99L8L-fT-dZzw5SgIGI5rc2GmT2P4CQ3ir5Z0zdfZKdkraeURMT95r8POHMup7 ...
- 巩固基础知识,从C# in depth开始
真是书到用时方恨少,平时都是完成任务,书都是看个前面几章就扔书柜了.... 今天看了博客园一篇文章<我们为什么应该坚持写博客>,很有感触,觉得人生不能得过且过,以前为了各种原因,家庭,孩子 ...
- iPhone / iPad UI界面设计与图标设计的尺寸设计规范+安卓+网页
①iPhone的设计尺寸 iPhone界面尺寸: 设备 分辨率 状态栏高度 导航栏高度 标签栏(工具栏)高度 iPhone6 plus设计版 1242 × 2208 60px 132px 146px ...
- Linux 设备驱动程序 proc
不能再简化了 #include<linux/module.h> #include<linux/init.h> #include<linux/proc_fs.h> i ...
- tomcat mysql 内存溢出的问题
原因是mysql的密码有问题 解决办法: 具体操作步骤: 关闭 mysql: # service mysqld stop 然后: # mysqld_safe --skip-grant-tables 启 ...