首页 理论教育 Java特点及其安全性研究

Java特点及其安全性研究

时间:2023-11-05 理论教育 版权反馈
【摘要】:另外,在Java语言中还具备了许多保证程序稳定、健壮的特性,有效地减少了错误,这样使Java应用程序更加健壮。从此,Java安全方面的问题开始被关注。不过至今所发现的安全隐患都微不足道,并且Java开发组还宣称,他们对系统安全方面的bug非常重视,会对这些被发现的bug立即进行修复。同时,由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量,共同发现、防范、消除这些安全隐患。

Java特点及其安全性研究

1.Java语言的优点

Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 9X、Windows NT、Solaris、Linux、MacOS及其他平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上被广泛采用。

由于Java语言的设计者们十分熟悉C++语言,所以,在设计时很好地借鉴了C++语言。可以说,Java语言是一种比C++语言 “还面向对象”的编程语言。Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言更加容易。

当然,如果仅仅是对C++的改头换面,那么就不会有今天的 “Java热”了。Java语言提供的一些有用的新特性,使得使用Java语言比C++语言更容易写出“无错代码”。

这些新特性包括:

(1)提供了对内存的自动管理,程序员无须在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打扰设计者了。

(2)去除了C++语言中的令人费解、容易出错的 “指针”,用其他方法进行弥补。

(3)避免了赋值语句(如a=3)与逻辑运算语句(如a==3)的混淆。

(4)取消了多重继承这一复杂的概念。

Java语言的规范是公开的,可以在http://www.sun.com上找到它,阅读Java语言的规范是提高技术水平的好方法。

2.Java语言的关键特性

Java语言有许多有效的特性,吸引着程序员们,最主要的有以下几个:

(1)简洁有效。

Java语言是一种相当简洁的 “面向对象”程序设计语言。Java语言省略了C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。它更加严谨、简洁。

(2)可移植性。

对于一个程序员而言,写出来的程序如果不需修改就能够同时在Windows、MacOS、UNIX等平台上运行,简直就是梦寐以求的好事!而Java语言就让这个原本遥不可及的事越来越近了。使用Java语言编写的程序,只要做较少的修改,甚至有时根本不需修改,就可以在不同平台上运行了。

(3)面向对象。

“面向对象”是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的里程碑。在过去的30年间,“面向对象”有了长足的发展,充分体现了其自身的价值,到现在已经形成了一个包含了 “面向对象的系统分析”“面向对象的系统设计”  “面向对象的程序设计”的完整体系。所以作为一种现代编程语言,是不能够偏离这一方向的,Java语言也不例外

3.解释型

Java语言是一种解释型语言,相对于C/C++语言来说,用Java语言写出来的程序效率低,执行速度慢。但它正是通过在不同平台上运行Java解释器,对Java代码进行解释,来实现 “一次编写,到处运行”的宏伟目标的。为了达到目标,牺牲效率还是值得的,况且,现在的计算机技术日新月异,运算速度也越来越快,用户是不会感到太慢的。

4.适合分布式计算(www.xing528.com)

Java语言具有强大的、易于使用的联网能力,非常适合开发分布式计算的程序。Java应用程序可以像访问本地文件系统那样通过URL访问远程对象。使用Java语言编写Socket通信程序十分简单,使用它比使用任何其他语言都简单。并且它还十分适用于公共网关接口(CGI)脚本的开发,另外,还可以使用Java小应用程序(Applet)、Java服务器页面(Java Server Page,JSP)、Servlet等手段来构建更丰富的网页。

5.拥有较好的性能

正如前面所述,由于Java是一种解释型语言,所以它的执行效率相对就会慢一些,但由于Java语言采用了两种手段,其性能较好。

(1)Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称为字节码)后再解释。

(2)提供了一种 “准实时”  (Just-in-Time,JIT)编译器,当需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样速度就会更快。

6.健壮、防患于未然

Java语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时又做了一些相应的检查,可以说是一种最严格的 “编译器”。它的这种 “防患于未然”的手段将许多程序中的错误扼杀在 “摇篮”之中。经常有许多在其他语言中必须通过运行才会暴露出来的错误,在Java中在编译阶段就被发现了。

另外,在Java语言中还具备了许多保证程序稳定、健壮的特性,有效地减少了错误,这样使Java应用程序更加健壮。

7.具有线程处理能力

线程,是一种轻量级进程,是现代程序设计中必不可少的一种特性。多线程处理能力使程序具有更好的交互性、实时性。Java在多线程处理方面性能超群,具有让设计者惊喜的强大功能,并且在Java语言中进行多线程处理很简单。

8.具有较高的安全性

由于Java语言在设计时,在安全性方面考虑很仔细,做了许多探究,使得Java语言成为目前最安全的一种程序设计语言。尽管Sun公司曾经许诺过:“通过Java可以轻松构建出防病毒、防黑客的系统。”但 “世界上没有绝对的安全”这一真理是不会因为许诺而失灵验的。就在JDK(Java Development Kit)1.0发布不久后,美国Princeton(普林斯顿)大学的一组安全专家发现了Java1.0安全特性中的第一例错误。从此,Java安全方面的问题开始被关注。不过至今所发现的安全隐患都微不足道,并且Java开发组还宣称,他们对系统安全方面的bug非常重视,会对这些被发现的bug立即进行修复。同时,由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量,共同发现、防范、消除这些安全隐患。

9.是一种动态语言

Java是一种动态的语言,这表现在以下两个方面:

(1)在Java语言中,可以简单、直观地查询运行时的信息;

(2)可以将新代码加入一个正在运行的程序中。

10.是一种中性结构

“Java编译器生成的是一种中性的对象文件格式。”也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的 “中性”的字节码。这种中性结构其实并不是Java首创的,在Java出现之前,UCSD Pascal系统就已在一种商业产品中做到了这一点,另外,在UCSD Pascal之前也有这种方式的先例,在NiklausWirth实现的Pascal语言中就采用了这种降低一些性能,换取更好的可移植性和通用性的方法。

Java的这种字节码经过了许多精心的设计,使得其能够很好地兼容于当今大多数流行的计算机系统,在任何机器上都易于解释,易于动态翻译成机器代码。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈