l 任何没有被CLDC定义的native code都不允许调用。这意味着应用程序不能下载一个新的含有native code的类库并使用。
l CLDC规范额外规定了系统类和应用程序类的命名规则。也就是说,为了满足上面说的沙箱的要求,所有java.*和java.microedition.*都属于系统类,不能被覆盖,修改;也不能任意增减。应用程序类不能使用上述包名来实现自己的类。
l 而且,除了调用系统类之外,应用程序只能调用自身JAR包中的类。这样保证了应用程序不能从其他的应用程序中“偷”数据(或类的实现)来达到自身的目的。
注:在最新的JSR246(Device Management)中,通过设备管理框架(Device Management Framework),满足一定条件的应用程序有可能访问其他应用程序的数据,但是对绝大多数应用程序来说,别人的数据仍然是不可以访问的。(想用楷体,但是机器上没有除宋体以外的其他字体……哭)
3,端对端的安全机制(end-to-end security)
端对端的安全机制主要指在数据传输时的安全,如数字签名、加密等机制。考虑到网络不是CLDC设备必须支持的功能,这方面的定义是由上层相应的简表来完成的,如MIDP;CLDC规范中并没有详细的规定。
2.3.2 CLDC中类的预审核模式
J2SE提供了字节码的审核机制用于检查类文件的完整性。该审核机制是在编译时进行的,其目的是确保类文件中不包含可能破坏系统安全的或是违反了Java语言规范的恶意代码。其内容主要包括:
1)所有本地变量在使用前必须初始化
2)在构造对象时,其构造函数必须在该对象被使用前调用
3)每个对象的构造方法都必须调用父类的构造方法(要求最先调用java.lang.Object的构造方法)
4)本地变量、实例和静态成员在声明时指明的对象类型必须和实际赋值的对象类型一致。例如,给一个声明成String类型的变量赋予Integer类型的值是不被允许的。
类的审核机制仅仅针对于外来的类文件(比如从网络上下载的),而对本地文件系统中的类的加载是不用审核的。