上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.4 代码安全检测
字节码的执行要经过3个步骤:首先,类加载器(ClassLoader)负责把类文件加载到Java虚拟机中。此过程会检验该类文件是否符合类文件规范;其次,字节码校验器(Bytecode Validator)检查该类文件的代码中是否存在某些非法操作;如果字节码校验器检验通过,由Java解释器负责把该类文件解释成为机器码再执行。
Java虚拟机在上面的操作中使用了“沙漏”模型,即把Java程序的代码和数据都限制在一定的内存空间执行,不允许程序访问该内存之外的内存空间。这种访问过程不仅仅是本地的,也可以是远程的。如果是Applet程序,还不允许访问客户端机器的文件系统。