不定项选择题 下面有关Java代码安全性的叙述正确的是______。
   A.字节码校验器加载查询执行需要的所有类
   B.运行时解释器执行代码
   C.在运行时,字节码被加载,验证然后在解释器里面运行
   D.类加载器通过分离本机文件系统的类和从网络导入的类增加安全性
【正确答案】 B、C、D
【答案解析】Java程序运行的过程是这样的:类加载器(class loader)加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序。因为本机类总是先被加载,一旦所有的类被加载完,执行文件的内存划分就固定了,在这个时候特定的内存地址被分配给对应的符号引用,查找表(lookup table)也被建立。由于内存划分发生在运行时,解释器在受限制的代码区增加保护防止未授权的访问,然后字节码校验器(byte code verifier)进行校验,主要执行下面的检查:类符合JVM规范的类文件格式,没有违反访问限制,代码没有造成堆栈的上溢或者下溢,所有操作代码的参数类型都是正确的,解释器在必要时通过运行时系统执行对底层硬件的合适调用。