JAVA安全基础

 

一、Java简介

    Java是由美国Sun Microsystem,Inc.开发出来的一种面向对象的语言,它已经广泛用于Internet 上以完成一些HTML无法完成的功能。Java有简单、稳定、安全、界面友善等几大特点,而且对于UNIX,Macintosh或者PC机都能使用,这就是为什么Java如此受欢迎的原因了,Java是由C++衍生过来的,它的风格和C++很相似,不过就和C++相比就简单得多 。Java由于其指令和结构都是十分严谨的,而且是专门为不同环境些执行所设计,所以Java编写的程序远比C++要稳定,而且改错也比较容易。在网络上执行程序时,Java对安全性的保障具有非常严格的控制,尤其是对用户端安全的保护以及规定都有详尽而严格的规定。

二、Java的特点

   Java在运行机理上和C++很相似,但是两者也有很多差异:
1、Java不支持结构和指针;在C/C++中,最灵活也是最头疼的东东就是指针(一说到这个玩意我就全身发冷),但是在JAVA中,为了保持它的平台无关性,Java取消了指针。

2、自动内存管理和线索控制。在C和C++中,内存必须用free、 malloc和其它许多内存管理标准库管理。因此,系统要了解何时分配、释放内存并且跟踪所有的内存使用情况是非常困难的。如果要在C和C++中实现线索功能,必须使用一个可对线索进行各种控制的类库。而在Java中,尽管线索仍然需要类的支持,但系统却在语言级包括了线索同步机制。

3、Java具有内嵌的内存管理程序。一旦创建了一个对象,Java的运行系统就开始跟踪这个对象,直到不再需要跟踪该对象的所有引用为止。当某个对象不存在相应的引用时,Java把这个对象放到一个用于垃圾搜集的栈内。为在性能损失最小的情况下提供自动垃圾搜集机制,这个垃圾搜集程序将在后台或作为低优先级线索运行。这样,Java的垃圾搜集软件将在前台线索的执行期间抽空执行,或者在系统显式提出需要使用那些被已经死亡的类所占用的内存空间时执行。

从后台内存管理程序可以很明显地看出,多线索的确可以增强Java环境的相对性能。鉴于多线索的重要性,Java在语言级提供了线索同步机制,使多线索成为一种内嵌特性。Java 语言支持针对方法的同步修饰符,并通过该修饰符来指明线索的运行顺序。此外,Java还能控制方法与实例变量的相互作用机制,确保了各方法之间在修改数据时不会产生冲突。

Java的内存管理和线索支持还具有使Java语言简单化的作用。正是由于把内存管理任务嵌入到了Java环境,Java语言才可以取消指针数据类型、malloc和free函数。这样,程序员就可以把更多的时间化在真正的编程工作上,而不是去跟踪调试与内存使用相关的程序错误。正是由于其多线索机制,Java才可以为一个可移植的解释系统提供较高的性能。

 4、Java的编译和C/C++大有不同,C/C++的编译器是将源代码编译成某种处理器所能处理的机器码,而Java编译器只是将它编译成一种临时代码,称为字节码或虚拟机代码,通过文件.class进行存储,运行时通过Java虚拟机运行,而不基于任何特定处理器。

三、Java在浏览器上的运用

首先时网页制作人员,在HTML代码中写入<Applet>标记,在客户端的浏览器遇到该标志的时候,如果它与Java兼容的话,就会下载相应的类文件,类文件中装的就是我们刚刚说的字节码,浏览器中的虚拟机根据客户端的处理器将字节码转换为特定的机器码,于是它就在这台机器上执行了。

四、Java组件

浏览器下载applet的类文件后,Java虚拟机将执行applet的即定动作。但是由Java虚拟机编译执行之前,下面的几个Java组件功劳不可抹杀:Java Applet类装载器,Applet校验,Applet安全性管理器,这些组件载完成必要的代码装入、校验以及安全性运行方面不可替代。

Applet类装载器将浏览器下载的applet装入内存,除了为运行applet做准备之外,Applet类装载器还要完成下面的任务:

  • 加强Java的命名空间组织;所谓命名空间就是指Java虚拟机用以存储Java类的一块内存空间,Java虚拟机会为它下载的每一个Java类分配一块空间,之后Applet类装载器将和校验器一起确保没有任何类越过它的命名空间去访问不属于它的命名空间的其他内存。
  • 确保每一个类都存在一个来自本地的文件系统的唯一的命名空间并且对每一个网络资源也都有一个唯一的命名空间;
  • 浏览器下载applet的类文件后,Applet类装载器将这些类放入与他们的源代码相联系的命名空间中,这样Applet类装载器将把每一个Applet分放在不同的命名空间中以保护安全性sandbox;
  • 在Applet类装载器载入该类之前,类验证器将首先检查该类;
类校验器用以保证applet符合安全性标准的运行系统中的一部分。它先确认applet符合Java语言规范,类校验器不检查那些可信任的编译器所生成的类文件,而是对那些有意违背命名空间规定和Java语言规则的类文件加以检查,并关闭具有安全性漏洞的类文件,如下所述,类校验器将:
  • 保证程序没有昌盛堆栈上溢或下溢;
  • 保证程序对所有注册内容进行有效的存取;
  • 保证所有的字节码指令的参数是正确的;
  • 保证程序没有对数据进行非法转换;
类校验器通过分析穿来的字节指令代码文件来完成以上的严格检查,它还为类文件格式和对象签名,执行Java程序的异常Finally语句。在Java源程序中,try-catch-finally语句序列捕捉和响应Java的程序错误。

Applet安全性管理器用以保证Java Applet符合Java的安全限制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值