认识java

认识Java


Java(tm)是由美国升阳电脑公司(Sun Microsystems, Inc.)所发展出的
第一种能在国际互联网络(Internet)上面具有「硬件/软件中立性」交互
能力的程序语言。Java一推出即引起世界各种媒体的注意与热烈参与讨论,
如Time、 Business Weekly、CNN等,可见其功能及魅力,事实上,
以Java的功能,势必在信息界掀起另一番高潮,对于网络的发展,
又将迈入另一个新的纪元。

前言


『Java』从1995年的暑假开始即受到电脑业界的高度注意,特别是
在Internet和多媒体(Multimedia)相关产品类方面。Java为何有如此
这么大的魅力?有人作如此的比喻:Java在全球资讯网(World Wide Web,
WWW)地位就如同电子表格(Spreadsheet)与个人电脑(PC)的关系。

那Java究竟有那些特色呢?

MAC O/S, Windows, 或NT等)环境的语言
(Kestenbaum, 1995)。

以下,将依序地介绍Java,首先是Java的发展历史与Java语言介绍,
其次依序是Java Applet和HotJava的简单介绍。


Java介绍



首先以问答的方式来说明Java的发展历史与其背景(下列内容整理自
Java FAQ list and Tutorial和The Java Language: A White Paper,
读者若欲深入了解,请自行参阅原文):

※ Java何时开始发展?(When)
最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始
着手于发展消费性电子产品(Consumer Electronics),所使用的语言是
C、C++、及Oak (为Java语言的前身),后因语言本身和市场的问题,
使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,
绿色计划也因此而改变发展的方向,这已是1994年了。

※ 为何称之为Java?(Why)
"Java"是美国升阳电脑公司Java发展小组历经无数次的激烈讨论之后
才被选择出。生动(Liveliness)、动画(Animation)、速度(Speed)、
交互性(Interactivity)为当初选择名字时所欲表达出的特色。"Java"
是在无数的建议中脱颖而出的,而"Java" 不是由几个单字的首字所组成,
而是从许多程序设计师钟爱的热腾腾、香浓咖啡中产生灵感的。

※ 谁开发了Java?(Who)
答案是美国升阳电脑公司Java发展小组,早期的成员(绿色工程)是
Patrick Naughton, James Gosling, & Mike Sheridan,而现在大家
较为熟悉的成员是James Gosling,现在的Java发展小组成员也增加了许多,
当然您也有机会成为该小组的成员,机率永远是大于零。

※ 在那里开发了Java?(Where)
也就是问Java的出生地?答案是美国。

※ Java有何特色或是特点?(What)
详见本单元开头部份及下一段的说明。
※ 如何可以找到我所需要的Java信息?(How to)
在网路上,您可以连线到Sun公司的Java WWW网站,网站节点地址是
http://java.sun.com/,或是http://www.javasoft.com/。
在那里几乎可以找到您所需要的Java信息,但是语言多少是一个障碍,
至少对某些人而言;没关系,目前国内已有很多个网站提供中文Java信息,
以后应会有更多的网站提供相关信息。

※ 我如何可以看到Java的效果?(How Do I)
首先您需要有与Java相容的浏览器(Browser),例如:网景公司的
Netscape Navigator 2.0以上或是Sun公司的HotJava浏览器,
对个人电脑使用者而言,作业系统需是Windows 95或是Windows NT。

由上一节的"Java小史"我们知道了Java的发展历史,现进一步地介绍Java语言。
Java乃是因应撰写C++语言程序时的困难而研制开的,起先,只是一个消费性
电子产品大计划中的一部份,C++语言是当初被考虑采用的,但从一开始的
编译问题一直到最后的一连串问题迫使得放弃C++语言,而有Java语言的产生。
Sun是要Java成为一个简单(Simple)、面向对象的(Object Oriented)、
分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、
安全的(Secure)、结构中立的(Architecture Neutral)、
可移植的(Portable)、高效能的(High Performance)、
多线程的(Multithreaded)、动态的(Dynamic)的程序语言(摘译自The
Java Language: A White Paper, 1995)。

在Sun的Java语言白皮书中明白地说明上述Java语言的特点。

1.简单(Simple):容易编写程序,不需要长时间的训练,而能满足现代的需求。
程序小型亦是简单的一种特性,使得软体能够在小型机器上执行,基本的解释器
约为40k,若加上基本的程序库,约为215k。

2.面向对象的(Object-Oriented):面向对象的设计是一种重心在资料和接口的技巧。
若以木工为比喻,一个面向对象的木工,他(她)最主要的重点是即将要做的
木椅子,其次才是所需要的工具;反之;一个以非面向对象的木工,他(她)所
关心的只是工具。最近的即插即用(Plug and Play)亦是面向对象设计的重点。

3.分布式的(Distributed):Java有一个很周全的程序库,且很容易地与HTTP和FTP等
TCP/IP通讯协定相配合。Java应用程序(Applications)能在网路上开启及连结
使用物件,就如同透过URLs连结使用一个本地文件系统(Local File System)。

4.健壮的(Robust):由Java所编写出的程序能在多种情况下执行而具有其稳定性。
Java与C/C++最大不同点是Java有一个指针模型(Pointer Model)来排除内存
被覆盖(Overwriting Memory)和毁损数据(Corrupting Data)的可能性。

5.安全的(Secure):Java是被设计用于网络及分布式的环境中,安全性自必是一个
很重要的考虑。Java拥有数个阶层的互锁(Interlocking)保护措施,能有效地防止
病毒的侵入和破坏行为的发生。

6.结构中立的(Architecture Neutral):一般而言,网络是由很多不同机型的机器
所组合而成的,CPU和作业系统体系结构均有所不同;因此,如何使一个应用程序可以
在每一种机器上执行,是一个难题。所幸,Java的编译器产生一种结构中立的目标
文件格式(Object File Format);这使得编译码得以在很多种处理器中执行。

7.可移植的(Portable):原始资料型式的大小是被指定的,例如"float"一直是
表示一个32位元IEEE 754浮点运算数字,因绝大多数的CPU都具有此共同特征。
程序库属于系统的一部份,它定义了一些可移植的程序接口,Java本身具备有很好的
可移植性。

8.解释的(Interpreted):Java解释器能直接地在任何机器上执行Java位元码
(Bytecodes),因此在进行程序连结时,时间的节省,这对于缩短程序的开发过程,
有极大的帮助。

9.高效能的(High Performance):Java位元码迅速地能被转换成机器码(Machine Code),
从位元码转换到机器码的效能几乎与C与C++没有分别。

10.多线程的(Multi threaded):Java语言具有多线程的功能,这对于交互
回应能力及即时执行行为是有帮助的。
11.动态的(Dynamic):Java比C或C++语言更具有动态性,更能适应时刻在变的环境,
Java不会因程序库的更新,而必须重新编译程序。

有关Java中文白皮书的详细内容请参阅美商升阳电脑台湾分公司所发行的
「升阳月刊」1996年2月号的「Java语言白皮书」一文。

此外,Hank Shiffman (Making Sense of Java)亦针一般对Java的错误看法及
观念提出他的说明,特在此摘译如下:


1. "Java是一种编写Web Pages的一种语言,就如同HTML和VRML一样"

事实上,Java并不像是HTML此一类的描述语言(Description Language),
而是一种编程语言(Programming Language)。描述语言标明内容和位置,
而编程语言描述一种产生结果的过程。

2. "Java语言容易学习和使用,不像C、C++和其它程序语言"

Java是一种编程语言。Java容易学吗?Java或许是比C或C++容易学,
但仍是一种编程语言,而不是一种描述语言。

3. "Java码是可移植的,但C及C++不是"
Java原代码(Source Code)是比C语言来得可移植一点,差别在于Java的
目标码。Java码在一种机器上进行编译,而能在所有的机器上执行,
只要那部机器上有Java解释器。

4. "Java能被拓展而在机器上执行任何事情"

理论上,Java Applet (Java小应用程序)能做任何事情,如模拟
3D VRML模型、播放电影、产生声音....等。但事实上,一个小应用
程序(Applet)仅能在那一页上被执行,而无法在那一页之外执行。
同时,Java亦受限于程序库的功能。

5. "Java是适合于建立大型的应用程序"

如果Java适合于大型程序,则Java就不适合应用于Web浏览器了。
第一个商业性的Java Applets (Applix's Java-Based Spreadsheet)
并不是全然使用Java,它只使用Java作为用户接口,而所有的处理工作,
是用CGI码。

6. "Java是解释执行的,Basic是解释执行的,因此Java=Basic"

虽然Java的确是使用解释器,但事实上,Java则与C或C++等完全编译语言
较为相近,但与Basic或APL等完全解译语言较不相近。
较为相近,但与Basic或APL等完全解译语言较不相近。

7. "Java删除了CGI命令稿(Scripts)和程序的需求"

Java Applets将会取代部份CGI的用途。在有些情况,Java Applets能够
取代一些服务器端代码(Server-Side Code),但大多数的情况,基于安全性
理由或是效能的考虑,Java仍无法全然取代CGI Scripts。

8. "Netscape's JavaScript是与Java有相关"

较为相近,但与Basic或APL等完全解译语言较不相近。
较为相近,但与Basic或APL等完全解译语言较不相近。

7. "Java删除了CGI命令稿(Scripts)和程序的需求"

Java Applets将会取代部份CGI的用途。在有些情况,Java AOpletsO芄
取代一些服务器端代码(Server-Side Code),但大多数的情况 基于安全性
理由或是效能的考虑,Java仍无法全然取代CGI Scripts。 O

8. "Netscape's JavaScript是与Java有相关"

除了名称之外,Java和JavaScript是有一点点相关。JavaScript是一种
命令稿语言,是可以在HTML页中使用。Java码并未出现在HTML中,而在
HTML中通过一个链结来链结编译码组。Java和JavaScript之间的关系
就如同C语言和C Shell一般。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值