Java平台安全:安全类加载机制解析
1. 动态类加载概述
动态类加载是Java虚拟机的一项基本特性,它使得Java平台能够在运行时安装软件组件。这一特性具有多个有趣的特点:
- 懒加载 :意味着类是按需加载的,仅在需要解析链接时才会被加载。
- 类型安全链接 :Java虚拟机通过添加链接时检查来维护类型安全,这些检查仅执行一次,从而避免了额外的运行时检查。
- 用户可定义的类加载策略 :支持用户自定义类加载器,用户可以定制类的加载方式。
- 多命名空间 :例如,浏览器可以将来自不同网页的小程序加载到不同的类加载器中,从而在这些小程序类之间保持一定程度的隔离。即使这些小程序可能包含同名的类,Java虚拟机也会将它们视为不同的类型。
语言类型安全通过多种技术来强制执行,包括字节码验证、类加载和运行时检查。本文将重点介绍定位类文件、确定合适的类加载器、为加载的类分配合适的安全属性,以及将类与保护域关联的算法和API。
2. 类文件、类型和定义类加载器
2.1 类文件
当类加载器加载Java软件组件时,最小的组件单元是类。类以一种与机器无关的二进制表示形式定义,称为类文件格式。单个类的表示称为类文件,尽管它不一定存储在实际的文件中。通常,类是编译类的源代码后创建的文件。类文件可能包含字节码,以及对字段、方法和其他类名称的符号引用。例如,以下是一个类C的声明:
class C
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



