内容:
1. 类加载器(与负责控制代码运行的安全管理器类协同工作获取最大的安全性)
2. 字节码校验
3. 安全管理器与访问权限
4. 用户认证
5. 数字签名
6. 代码签名
7. 加密
Java 提供的三种确保安全的机制:
(1) 语言设计特性(数组的边界检查,类型转换的检查,算法无指针)
(2) 访问控制机制,例如文件访问、网络访问控制
(3) 代码签名
9.1 类加载器
每个Java程序至少拥有三个类加载器:
引导类加载器
加载系统类(从rt.jar 中加载 ),用C 语言实现,没有对应的ClassLoader 对象
扩展类加载器
从jre/lib/ext 目录加载“标准扩展”
应用类加载器
加载应用类。在由CLASSPATH 环境变量或者-classpath 命令行选项设置类路径中的目录里或JAR/ZIP 文件里查找应用类。
ClassLoader 的类图如下。
ClassLoader 类图在Oracle的Java 语言实现中,扩展类加载器和应用类加载器都是URLClassLoader 类的实例。从ClassLoader的类图也可以看出这一点。如果需要实现自定义的ClassLoader 可以参考ExtClassLoader 和AppClassLoader 继承URLClassLoader 实现。
9.1.1 类加载器的层次结构
除了引导类加载器,其他类加载器都有一个父类加载器。
只有在父类加载器加载失败时,子类加载器才会加载给定类。
网友评论