天天看点

Java是什么,Java是什么意思

一、前言

  『java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在internet和多 媒体(multimedia)相关产品类方面。java为何有如此这么大的魅力?人作如此的比喻: java在全球资讯网(world wide web, www)地位就如同电子表格(spreadsheet)与个人计 算机(pc)的关系。那java究竟有那些特色呢?

  java是一种软件技术

是一种由美国sun计算机公司(sun microsystems, inc.)所研究而成的语言

是一种为 internet发展的计算机语言

是一种使网页(web page)产生生动活泼画面的语言

是一种使网页(web page)由静态(static)转变为动态(dynamic)的语言

是一种语言,用以产生「小应用程序(applet(s))」 

是一种简化的c++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

是一种将安全性(security)列为第一优先考虑的语言 

是一种使用者不需花费很多时间学习的语言

是一种突破用户端机器环境和cpu结构的语言

是一种「写一次,即可在任何机器上执行(write oncerun anywhere)」的语言是有史以来,第一套允  使用者将应用程序(applications)通过internet从远端的服务器(remote server)传输到本地端的机器  上(localmachine)并执行

是一种应用程序提供者不需要知道使用者的计算机硬件(如:sun, intel, 或mac等)与软件(如:sw-   unix, mac o/s, windows, 或nt等)环境的语言(kestenbaum, 1995)。 

  下面将依序地介绍java,首先是java的发展历史与java语言介绍,其次依序是java applet和hotjava的简单介绍。如果你想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有问题可以提问,还有大量的学习资料可以下载。

二、java faq

  下面以问答的方式来说明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"是美国sun计算机公司java发展小组历经无数次的激烈讨论之后才被选择出。 生动(liveliness)、动画(animation)、速度(speed)、交互性(interactivity)为当 初选择名字时所欲表达出的特色。"java"是在无数的建议中脱颖而出的,而"java" 不是由几个单字的首字所组成, 而是从许多程序设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。 

  谁开发了java?(who) java是美国sun计算机公司java发展小组开发的,早期的成员(绿色工程)是patrick naughton, james gosling, & mike sheridan,而现在大家较为熟悉的成员是james gosling。 

  在那里开发了java?(where) 

也就是问java的出生地?答案是美国。 

  如何可以找到所需的java信息?(how to)

在网路上,您可以连到sun公司的java www网站,url是    言多少是一个障碍, 至少对某些人而言;没关系,目前国内已有很多个网站提供中文 java信息。在清华和中科院的ftp站点上有不少有关资料。想象以后应会有更多的站点提供相关信息。

  如何才能看到java的效果?(how do i) 

首先您需要有含有java解释器的浏览器(browser),例如:netscpae公司的netscape navigator 2.0以上或是sun公司的hotjava浏览器,对个人计算机使用者而言,操作 系统需是windows 95或是windows nt。

  java是因为撰写c++语言程序时的困难而研制开的,起先,只是一个消费性电子产品 大计划中的一部份,c++语言是当初被考虑采用的,但从一开始的编译问题一直到最 后的一连串问题迫使得放弃c++语言,而有java语言的产生。sun是要java成为一个简 单(simple)、面向对象的(object oriented)、 分布式的(distributed)、解释的(interpreted)、健壮的(robust)、安全的(secure)、 结构中立的(architecture neutral)、可移植的(portable)、高效能的(high performance)、多线程的(multithreaded)、动态的(dynamic)的程序语言(摘译自 thejava language: a white paper, 1995)。

  在sun的java语言白皮书中明白地说明上述java语言的技巧。若以木工为比喻,一个面 向对象的木工,他(她)最主要的重点是即将要做的木椅子,其次才是所需要的工具; 反之;一个以非面向对象的木工,他(她)所关心的只是工具。最近的即插即用(plug and play)亦是面向对象设计的重点。 分布式的(distributed):java有一个很周全的程薪录java介绍 。

一、

  『java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在internet和 多媒体(multimedia)相关产品类方面。java为何有如此这么大的魅力?人作如此的比喻: java在全球资讯网(world wide web, www)地位就如同电子表格(spreadsheet)与个人计 算机ttp和ftp等tcp/ip通讯协定相配合。java应用程序(applications) 能在网路上开启及连结使用物件,就如同透过urls连结使用一个本地文件系统(local file system)。 健壮的(robust):由java所编写出的程序能在多种情况下执行而具有其稳定性。java与 c/c++最大不同点是java有一个指针模型(pointer model)来排除内存被覆盖(overwriting memory)和毁损数据(corrupting data)的可能性。

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

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

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

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

  高效能的(high performance):java位元码迅速地能被转换成机器码(machine code), 从位元码转换到机器码的效能几乎与c与c++没有分别。

  多线程的(multi threaded):java语言具有多线程的功能,这对于交互回应能力及 即时执行行为是有帮助的。

  动态的(dynamic):java比c或c++语言更具有动态性,更能适应时刻在变的环境, java不会因程序库的更新,而必须重新编译程序。

  此外,hank shiffman (making sense of java)亦针一般对java的错误看法及观 念提出他的说明,特在此摘译如下: 

  "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等完全解译语言较不相近。

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一般。