java代码安全性 java安全性高

JAVA的安全性究竟怎样体现出来java的安全性主要体现在:下载到本地的java applet只限制在java运行环境中,而不允许它访问计算机的其他部分 。
这是由于java编译器输出的并不是可执行代码,而是字节代码(bytecode) , java的运行系统就是java虚拟机,每个java程序的运行都是在java虚拟机的控制之下 。java虚拟机可以包含这个程序并且阻止它在系统外产生副作用 。通过java语言中的适当限制增强了安全性 。
下面有关java代码安全性的叙述哪些是对的下面有关Java代码安全性的叙述,( )是对的 。Ⅰ:字节码校验器加载查询执行需要的所有类 。Ⅱ:运行时解释器执行代码 。Ⅲ:在运行时,字节码被加载,验证后在解释器里面运行 。Ⅳ:类加载器通过分离本机文件系统的类和从网络导入的类增加安全性 。
A.Ⅱ、Ⅲ
B.Ⅱ、Ⅲ、Ⅳ
C.Ⅰ、Ⅲ、Ⅳ
D.Ⅲ、Ⅳ
请帮忙给出正确答案和分析,谢谢!
正确答案:B
解析:该题考查考生对Java程序代码安全性的掌握 。Java程序运行的过程是这样的:类加载器加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序 , 因为本机类总是先被加载 , 一旦所有的类被加载完,执行文件的内存划分就固定了 , 在这个时候,特定的内存地址被分配给对应的符号引用,查找表也被建立,由于内存划分发生在运行时,解释器在受限制的代码区增加保护 , 防止未授权的访问;然后字节码校验器进行校验,主要执行下面的检查,类是否符合JVM规范的类文件格式,有没有违反访问限制,代码有没有造成堆栈的上溢或者下溢,所有操作代码的参数类型是否都是正确的,有没有非法的数据类型转换(例如将整型数转换成对象类型)发生;校验通过的字节码被解释器执行 , 解释器在必要时通过运行时系统执行对底层硬件的相应调用 。
掌握Java语言的主要特点?Java语言是一种面向对象的编程语言,它吸收了Smalltalk语言和C语言的优点,并增加了诸如支持并行程序设计、网络通信和多媒体数据控制等其他功能 。那么Java语言的主要特点有哪些呢?下面云南电脑培训为大家具体介绍Java语言的主要特点 。
1、Java语言的简单性
Java语言是非常简单的 , Java语言的设计和C语言非常相近,能够让系统非常容易理解 。但是Java语言中删除了一些很少使用、不容易理解的函数知识 。
2、Java语言的面向对象性
Java是一种面向对象的语言,提供类、接口和继承 。为简便起见,云南IT培训发现Java语言只支持一个类之间的一个继承,并且支持接口间的多个继承,支持升级机制在类和界面之间执行 。
3、Java语言的分布式性
Java语言是开发分发的软件的理想,因为它具有强大的、易于使用的网络能力,在基本的Java应用软件的接口中,以网络为基础的方案接口 。昆明IT培训发现Java应用软件可以进入遥控物体,如进入当地档案系统 。Java的远程解决机制也是开发分配应用的重要手段 。
4、Java语言的健壮性
Java语言具有“强大的机制”、“异常处理”、“垃圾收集”等功能 。这确保了开发的稳定性和稳健性 。指针的丢弃和安全保护使Java变得更加强大 。
5、Java语言的安全性
Java语言是针对网络/分布式计算环境而设计的 。因此,Java语言非常重视安全性,以防止恶意代码攻击 。除了在Java语言中删除指针以确保内存使用的安全性外,昆明电脑培训发现Java语言还为通过网络下载的类提供了一种安全机制 。
深入探索Java工作原理:JVM,内存回收及其他 Java语言引入java代码安全性了Java虚拟机 具有跨平台运行的功能 能够很好地适应各种Web应用 同时 为java代码安全性了提高Java语言的性能和健壮性 还引入了如垃圾回收机制等新功能 通过这些改进让Java具有其独特的工作原理
.Java虚拟机
Java虚拟机(Java Virtual Machine JVM)是软件模拟的计算机 它可以在任何处理器上(无论是在计算机中还是在其他电子设备中)安全兼容地执行保存在 class文件中的字节码 Java虚拟机的 机器码 保存在 class文件中 有时也可以称之为字节码文件
Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行 Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行 因此在运行时 Java源程序需要通过编译器编译成为 class文件
Java虚拟机的建立需要针对不同的软硬件平台来实现 既要考虑处理器的型号 也要考虑操作系统的种类 由此在SPARC结构 X 结构 MIPS和PPC等嵌入式处理芯片上 在UNIX Linux Windows和部分实时操作系统上都可实现Java虚拟机
.无用内存自动回收机制
在程序的执行过程中 部分内存在使用过后就处于废弃状态 如果不及时进行回收 很有可能会导致内存泄漏 进而引发系统崩溃 在C语言中是由程序员进行内存回收的 程序员需要在编写程序时把不再使用的对象内存释放掉 这种人为管理内存释放的方法往往由于程序员的疏忽而致使内存无法回收 同时也增加了程序员的工作量 而在Java运行环境中 始终存在着一个系统级的线程 专门跟踪内存的使用情况 定期检测出不再使用的内存 并自动进行回收 避免了内存的泄露 也减轻了程序员的工作量
.代码安全性检查机制
安全和方便总是相对矛盾的 Java编程语言的出现使得客户端计算机可以方便地从网络上上传或下载Java程序到本地计算机上运行 但是如何保证该Java程序不携带病毒或者没有其他危险目的呢java代码安全性?为了确保Java程序执行的安全性 Java语言通过Applet程序来控制非法程序的安全性 也就是有了它才确保Java语言的生存
Java字节码的执行需要经过以下 个步骤
( )由类装载器(class loader)负责把类文件( class文件)加载到Java虚拟机中 在此过程需要检验该类文件是否符合类文件规范
( )字节码校验器(bytecode verifier)检查该类文件的代码中是否存在着某些非法操作 例如Applet程序中写本地计算机文件系统的操作
( )如果字节码校验器检验通过 由Java解释器负责把该类文件解释成为机器码进行执行
注意
Java虚拟机采用 沙箱 运行模式 即把Java程序的代码和数据都限制在一定内存空间里执行 不允许程序访问该内存空间以外的内存 如果是Applet程序 还不允许访问客户端机器的文件系统
Java的运行环境
无论哪种语言都需要有它特定的运行环境 也就是平台 Java语言同样不例外 但是如何理解Java程序与硬件环境无关呢java代码安全性?
几乎所有的语言都需要通过编译或者解释才可以被计算机执行 但是Java有一点不同 它同时需要这两个过程 其实 也正是因为这个原因才使Java这种语言具有了平台无关性 当完成一个Java源程序后 首先 通过Java翻译程序将它编译成一种叫做字节码的中间代码 然后再由Java平台的解释器将它转换成为机器语言来执行 这一平台的核心就是JVM
Java的编译过程与其他的语言不同 像C这样的语言 在编译时它是与计算机的硬件平台信息密不可分的 编译程序通过查表将所有指令的操作数和操作码等转换成内存的偏移量 即程序运行时的内存分配方式 目的是保证程序正常运行 而Java却是将指令转换成为一种 class的文件 这种文件不包含硬件的信息 需要执行时只要经过安装有JVM的机器进行解释 创建内存分配后再通过查表来确定一条指令所在的地址 这样就有效地保证了Java的可移植性和安全性
Java平台具有这样的特性和它的结构有关 通常一个程序运行的平台是一个硬件或者软件运行的环境 目前比较流行的是Windows XP Linux Solaris和MacOS Java的平台不太一样 它由两个部分组成 即JVM和应用程序设计接口
.JVM
JVM是Java平台的核心 为了让编译产生的字节码能更好地解释与执行 因此把JVM分成了 个部分 JVM解释器 指令系统 寄存器 栈 存储区和碎片回收区
◆JVM解释器 即这个虚拟机处理字段码的CPU
◆JVM指令系统 该系统与计算机很相似 一条指令由操作码和操作数两部分组成 操作码为 位二进制数 主要是为了说明一条指令的功能 操作数可以根据需要而定 JVM有多达 种不同的操作指令
◆寄存器 JVM有自己的虚拟寄存器 这样就可以快速地与JVM的解释器进行数据交换 为了功能的需要 JVM设置了 个常用的 位寄存器 pc(程序计数器) optop(操作数栈顶指针) frame(当前执行环境指针)和vars(指向当前执行环境中第一个局部变量的指针)
◆JVM栈 指令执行时数据和信息存储的场所和控制中心 它提供给JVM解释器运算所需要的信息
◆存储区 JVM存储区用于存储编译过后的字节码等信息
◆碎片回收区 JVM碎片回收是指将使用过的Java类的具体实例从内存进行回收 这就使得开发人员免去了自己编程控制内存的麻烦和危险 随着JVM的不断升级 其碎片回收的技术和算法也更加合理 JVM 版后产生了一种叫分代收集技术 简单来说就是利用对象在程序中生存的时间划分成代 以此为标准进行碎片回收
.Java应用程序设计接口
Java Application Programming Interface简称Java API 其中文名为Java应用程序设计接口 它是一个软件集合 其中有许多开发时所需要的控件 可以用它来辅助开发
lishixinzhi/Article/program/Java/hx/201311/26733
【java代码安全性 java安全性高】java代码安全性的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java安全性高、java代码安全性的信息别忘了在本站进行查找喔 。

    推荐阅读