JavaScript 和Java 虽然名字都带有Java,但它们是两种不同的语言,也可以说是两种互不相干的语言:前者是一种基于对象的脚本语言,可以嵌在网页代码里实现交互及控制功能,而后者是一种面向对象的编程语言,可用在桌面应用程序、Internet 服务器、中间件、嵌入式设备以及其他众多环境。
其主要区别如下:
开发公司不同:JavaScript 是Netscape 公司的产品,其目的是为了扩展Netscape Navigator 功能,而开发的一种可以嵌入Web 页面中的基于对象和事件驱动的解释性语言;Java 是Sun 公司推出的新一代面向对象的程序设计语言,特别适合于 Internet 应用程序开发。
语言类型不同:JavaScript 是基于对象和事件驱动的脚本编程语言,本身提供了非常丰富的内部对象供设计人员使用;Java 是面向对象的编程语言,即使是开发简单
的程序,也必须设计对象。
执行方式不同:JavaScript 是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户,由浏览器解释执行;Java
的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编
译代码的束缚。
代码格式不同:JavaScript 的代码是一种文本字符格式,可以直接嵌入HTML 文档中,并且可动态装载;Java 是一种与HTML 无关的格式,必须将其通过专门编译
器编译为Java applet,其代码以字节代码的形式保存在独立的文档中,然后在HTML 中通过引用外部插件的方式进行装载,
变量类型不同:JavaScript 采用弱类型变量,即变量在使用前不需作特别声明,而是在浏览器解释运行时该代码时才检查其数据类型;Java 采用强类型变量,即所有
变量在通过编译器编译之前必须作专门声明,否则报错。
嵌入方式不同:JavaScript 使用 标记对来标识其脚本代码并将其嵌入到HTML 文档中;Java 程序通过专门编译器编译后保存为单独的Java applet
文件,并通过使用 … 标记对来标识该插件。
联编方式不同:JavaScript 采用动态联编,即其对象引用在浏览器解释运行时进行检查,如不经编译则就无法实现对象引用的检查;Java 采用静态联编,即Java 的
对象引用必须在编译时进行,以使编译器能够实现强类型检查。
经过以上几个方面的比较,读者应该能清醒认识JavaScript 和Java 是没有任何联系的两门语言。
下面讨论Java applet。
Java applet 是用Java 语言编写的、有特定用途的应用程序,其直接嵌入到HTML 页面中,由支持Java 的浏览器解释执行并发挥其特定功能,大大提高Web 页面的交互和动态执行能力,包含applet 应用程序的页面被称为Java-powered 页。
当用户访问这样的网页时,如果客户端浏览器支持Java 且没有将Java 支持选项设置为禁止,则applet 被下载到用户的计算机上执行,且执行速度不受网络带宽的限制,用户可以更好地欣赏网页上applet 产生的各种效果。
与其他应用程序不同,applet 应用程序必须通过和标记对将自己内嵌到HTML 页面中,当支持Java 的客户端浏览器遇到该标记对时,立即下载该applet 并在本地计算机上执行。执行的过程中它可从目标页面中获得相应的参数,并产生相应的功能,与Web 页面进行交互,实现页面的动态效果。
在 HTML 页面中嵌入applet,至少需获得该applet 的以下信息:
字节码文件名:编译后的 Java 文件,以.class 为后缀;
字节码文件的地址:相对地址和绝对地址均可;
显示参数设定:一些需要设定的参数如 width、height 等。
嵌入 applet 应用程序使页面更加富有生气,增加页面的交互能力,改进页面的定态效果,同时,嵌入applet 应用程序并不影响HTML 页面中的其他元素。