BBS水木清华站∶精华区

发信人: FrankCH (小花花), 信区: Java 
标  题: 认识java 
发信站: BBS 水木清华站 (Sun Jul 27 11:53:44 1997) 
 
 
认识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有相关" 
 
        除了名称之外,Java和JavaScript是有一点点相关。JavaScript是一种 
        命令稿语言,是可以在HTML页中使用。Java码并未出现在HTML中,而在 
        HTML中通过一个链结来链结编译码组。Java和JavaScript之间的关系 
        就如同C语言和C Shell一般。 
 
 
-- 
           ^_^ ^_^ ^_^ ^_^ ^_^ ^_^^_^ ^_^ ^_^ ^_^ ^_^ ^_^^_^ ^_^ ^_^ ^_^ ^_^ ^_^^_^ ^_^ ^_^ ^_^ ^_^ ^_^^_^ ^_^ ^_^ ^_^ ^_^ ^_^^_^ ^_^ ^_^ ^_^ ^_^ ^_^ 
^_^ ^_^ ^_^ ^_^ ^_^ ^_^ [s[4;65HO[3;66HO[3;67HO[3;68HO[4;69HO[5;69HO[6;68HO[7;67HO[8;65HO[7;63HO[6;62HO[5;61HO[4;61HO[3;62HO[3;63HO[3;64HO[u 
              Welcome EveryOne! 
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.74.158] 

BBS水木清华站∶精华区