《Java学习指南》—— 1.1进入Java世界

1.1进入Java世界

Java编程语言是在网络泰斗James Gosling和Bill Joy的指导下由Sun公司开发的,其目标是要将其设计为一种与机器无关的编程语言,不仅能够做到足够的安全从而在网络上“畅行无阻”,而且功能要非常强大,从而足以替换本地可执行代码。Java可以解决这里提出的问题,而且有助于我们着手构建所需的新型应用。

最开始的时候,对于Java的热情几乎都倾注于它能够为Web构建一种称为applet的嵌入式应用。但是在早期,用Java编写的applet和其他客户端GUI应用很有限。如今,Java拥有了Swing,这是所有语言中用于构建图形用户界面的最为复杂的工具包之一。这一发展使得Java得以成为开发传统客户端应用软件的一个流行平台。

更为重要的是,Java也成为了Web应用和Web服务的主流平台。这些应用程序所使用的技术包括Java Servlet API、Java Web Services,以及众多流行的开源或商业的Java应用程序服务器和框架。Java的可移植性和速度,使其成为现代分布式应用的首选平台。运行在开源Linux平台上的Java服务器,已经深入当今商业和金融行业的核心。

本书将向你展示如何使用Java来完成实际的编程任务。在后续的各章中,我们将依次介绍所有内容,从文本处理到网络,使用Swing构建富客户端GUI程序,以及轻量级的Web应用程序和服务等。

1.1.1 Java的起源
Java的最初思想是在1990年由Sun Microsystems公司的创办人和首席研究员Bill Joy提出来的。在当时,Sun只在小型工作站市场上享有相当小的份额,而Microsoft公司则在基于Intel的PC主流领域占据着主导地位。Sun公司错过了PC革命的浪潮,Joy回到了科罗拉多州的Aspen开始进行深入研究。他致力于用简单的软件来完成复杂的工作,并创建了一个名为Sun Aspen Smallworks的软件。

在Aspen工作的最初几个程序员当中,James Gosling后来被称为Java之父。Gosling在20世纪80年代早期开发了一个用自己名字命名的软件Gosling Emacs,这是流行编辑器Emacs的第一个用C语言编写并在Unix下运行的的版本。Gosling Emacs开始变得相当流行,但是不久被一个免费的版本GNU Emacs所取代,后者是由Emacs的最初设计者所编写的。那时,Gosling已经转而设计Sun公司的NeWS窗口系统,在1987年这个系统主要是为了与X Window系统争夺对UNIX GUI桌面系统的控制。尽管一些人认为NeWS较X Window更好,但是NeWS最后却不得不败北,这是因为Sun独占了NeWs的所有权,而且没有公开其源代码,而X Window的主要开发者则组建了X Window联盟并采取了和Sun相反的策略。

通过设计NeWS,Gosling认识到,将与网络有关的窗口GUI同描述性语言相集成有着何等的威力。另外Sun也意识到Internet编程群体最终对专有标准都将不予认同,而不论它多么优秀。正是NeWS的失败,促使Gosling萌生了Java卓越的授权许可机制的思想。Gosling把得到的宝贵经验带到了Bill Joy的最初的Apsen项目中。在1992年,这个项目导致了Sun的子公司FirstPerson公司的成立。该公司的任务就是领导Sun进入消费电子领域。

FirstPerson小组主要致力于信息应用软件的开发,如蜂窝电话和个人数字助理(PDA)软件等。其目标是通过廉价的红外线和传统的基于数据包(packet)的网络来传输信息并实现实时应用程序。内存和带宽的限制使得只能使用小而高效的代码,而应用的本质又要求代码必须做到安全而健壮。Gosling和小组成员最初尝试用C++ 来编写,不过很快他们就被这种复杂、笨拙而且不安全的语言搞得一头雾水。他们决定从头做起,重新编写一个语言,Gosling将这种语言戏称为“C++ minus minus”。

Apple Newton的推出,表明当时还不是PDA面市的时机,因而Sun将FirstPerson的目标转向到交互式TV(ITV)上。设计ITV机顶盒所选用的编程语言即为Java的雏形,称作Oak。尽管这种语言很优雅,也能提供安全的交互性,但是Oak依然不能挽救ITV的失败,消费者根本就不需要它,不久Sun也放弃了这个项目。

此时,Joy和Gosling聚在一起为他们的语言确定新的战略。到了1993年,随着人们对Internet兴趣的爆炸式增长,特别是对Web的关注简直无可比拟,这就提供了一个新的机遇。Oak是一种小型的、健壮的、体系结构独立而且面向对象的语言。而且当时恰逢急需一种适用广泛而且支持网络的编程语言。Sun很快调整了重心,仅对Oak稍加改动,即成为了后来的Java。

1.1.2 成长
说Java就像野火一样蔓延开来并不过分。甚至在还未公布其第一个正式版本之前,尽管当时Java还不能算是一个产品,几乎所有重要的厂商就都已在迫不及待地追赶着Java潮流了。获得Java授权的公司包括Microsoft、Intel、IBM以及几乎所有主要的硬件和软件厂商。但这并不意味着一切将一帆风顺。即使有如此众多的支持,在最初的几年里,Java仍然经历了很多挫折和阵痛。

由于Sun和Microsoft之间就Java的发布及其在Internet Explorer中的使用而争论不休,这就阻碍了Java在Windows这一世界上最通用的操作系统上的部署。Microsoft对于Java的态度也成为一个更激烈的行业诉讼的焦点,甚至超过了Microsoft与反垄断相关的法律诉讼,而Microsoft在法庭上的陈述则表示了协商努力的结果是:这个软件巨头力图通过在其Java版本中引入不兼容性以削弱Java的发展势头。与此同时,Microsoft还推出了它自己的类Java语言,称为C#(C-sharp),以此作为其.NET项目的一部分。C#自身已经发展成为一种很好的语言,近年来甚至有比Java更多的创新。

但是Java继续在广泛的平台上扩展。在开始了解Java体系结构的时候,你将看到,Java大多数激动人心之处源自于Java应用运行所在的自包含虚拟机环境。Java得到了精心设计,从而使得这一支持性的架构可以针对现有计算机平台而使用软件实现,也可以采用定制硬件来实现。Java的硬件实现用于一些智能卡和其他嵌入式系统中。你甚至可以购买其中嵌入了Java解释器的“可穿戴”设备,例如,戒指和狗牌。Java的软件实现则可供所有现代计算机平台使用,甚至下沿到便携计算机设备。如今,Java平台的一个分支成为Google的Android操作系统的基础,而Android已经安装到上百万台的手机和其他移动设备上。

2010年,Oracle收购了Sun Microsystems并且成为Java语言的管理者。在Oracle刚开始其任期的不平凡的日子里,Oracle要求Google停止在Android中使用Java语言,但最终失败了。2011年7月,Oracle发布了Java SE 7,这是一个重要的Java发布版本。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-11-13 06:35:45

《Java学习指南》—— 1.1进入Java世界的相关文章

《Java学习指南》—— 1.7 Java路线图

1.7 Java路线图 由于一切都尚在进行之中,因此很难将目前有什么.将来可能有什么,以及哪些已经存在一段时间等诸多情况呈现于笔端.以下几节将勾勒一幅路线图,从而使你对Java的过去.现在和将来有所认识. 1.7.1 过去:Java 1.0到Java 1.6 Java 1.0为Java开发提供了基本框架,即语言本身以及允许编写applet和简单应用的包.尽管1.0已经正式废弃,但仍存在大量applet遵循其API. Java 1.1取代了1.0,主要在以下方面有所改进:AWT包(Java最初的G

《Java学习指南》—— 1.3 Java与其他语言的比较

1.3 Java与其他语言的比较 Java虽是一种新语言,但是在其特性选择中,还汲取了其他语言多年以来的编程经验.花点时间来在较高的层面比较Java和其他语言是值得的,不管你是具有其他编程经验,还是需要搞清楚状况的新手,这都是有好处的.在本书中,我们不要求你具备任何特定编程语言的知识,并且当我们通过比较而提及其他语言的时候,我们希望这些说明是简单而直白的.如今一种通用语言至少要支持以下3点:可移植性.速度和安全性.图1-2显示了Java与其他几种流行语言的比较情况. "Java非常类似于C或C+

Java学习指南[转]

Java学习指南 一. JDK (Java Development Kit) JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握 JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发 的JDK,BEA公司的Jrocket,还有GNU组

《Java学习指南》—— 第1章 一种现代语言

第1章 一种现代语言 对于当前的软件开发人员而言,要驾驭网络的强大力量不仅是最为艰巨的挑战,同时也是最令人兴奋的机遇.如今创建的应用,无论预期的适用于什么范围或面向何种用户,运行软件的机器往往都会与全球的计算资源网络相连.网络的重要性日渐突出,这不仅对现有的工具提出了新的要求,而且还迫切需要全新的应用得到飞速的发展. 我们希望软件能够在任何位置.任何平台上以一致的方式工作,而且可以与其他应用很好地合作.对于充分利用互联世界的动态应用,我们希望它们能够访问异构和分布式的信息源.我们希望可以无缝地得

《Java学习指南》—— 1.4 设计安全

1.4 设计安全 Java被设计为一种安全语言,对于这一事实你肯定早已耳熟能详了.但是在此"安全"指的是什么呢?对什么而言安全,或者对谁安全呢?对于Java,得到颇多关注的安全性是那些使新型动态可移植软件成为可能的有关特性.Java提供了多层保护以避免恶意代码,并防止诸如病毒和特洛伊木马等更具危险性的东西.在下一节中,我们将查看Java虚拟机体系结构如何在代码运行前评估其安全性,还将介绍Java类加载器(Java解释器的字节码加载机制)如何在不可信类周围加筑围墙.这些特性为高级安全性策

《Java学习指南》—— 导读

前言 本书讨论的是Java编程语言和编程环境.无论你是一位软件开发人员,抑或仅仅在过去数年经常上网,无庸置疑,Java对你而言都可谓耳熟能详.Java的引入在Web的发展历史中堪称最精彩的手笔之一,并且在过去的15年里,Java应用程序对Internet上的业务的增长贡献很大.Java有可能已成为世界上最流行的编程语言,使得数百万开发人员在几乎所有的计算机上使用它.在过去的十年里,在开发人员的需求方面,Java已经超越了C++和Visual Basic,而逐步成为某些应用种类开发(特别是基于We

JAVA学习(六):JAVA中的继承及其常见问题分析

JAVA中的继承及其常见问题分析 1.JAVA中继承的定义 JAVA中,类的继承是通过扩展其他类而形成新类来实现的,原来的类称为父类(Super Class)或基类,新的类称为原来类的子类或派生类.在子类中,不仅包含了父类的属性和方法,还可以增加新的属性和方法,从而使得父类的基本特征可被所有子类对象共享. 注:类的继承并不改变类成员的访问权限,也就是说,如果父类的成员是公有的.被保护的或默认的,它的子类仍具有相应的这些特性. /**********************************

JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为: DataType identifier;  或  DataType identifier = value; 其中,DataType是变量类型,如int/string/char/double/boolean等:identifier是变量名称,即标识符:value就是声明变量的值. 注: a.标识符由数字0-9.大小写字母.下划线.美元符号.人民币符号以及

JAVA学习(八):JAVA文件编程

本博文主要介绍JAVA文件编程,主要包括通过JDK提供的I/O来从文件读取和写入数据.字节流读写文件的方法.字符流读写文件的方法.如何使用File类创建.删除和遍历文件与目录等操作. 不管是C/C++还是JAVA,都可能生成一些持久性数据,我们可以将数据存储在文件或数据库中,但是对于一些简单性的数据,如果存储在数据库中,则会显得有点得不偿失了,那么,如何在JAVA中将数据存储在文件中就成了中小型程序必须掌握的基本技能了. 下面一一讲解File类简介与文件的创建.删除.重命名,文件夹的创建.重命名