分析JAVA语言的安全性,我们要从两个方面展开说起:语言层次和底层的安全性
语言层次的安全性主要体现在以下几点:
1,JAVA取消了强大但又危险的指针,而代以之引用。
由于指针可进行移动运算,指针可以随便指向一个内存区域,不管这个区域是否可用。
这样做是危险的!
因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并且使用指针也很容易造成数组越界的问题。
2,垃圾回收机制
不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。
这样避免了程序忘记回收导致的内存泄漏。
也避免了程序错误回收程序核心类库的内存,导致系统崩溃。
3,异常处理机制
JAVA异常处理机制主要依赖于五个关键字:try,catch,finally,throw,throws来进行异常处理
4,强制类型转换
只有满足强制转换规则的情况下才能转换成功,否则失败。
底层的安全性主要体现在以下几点:
1,JAVA在字节码的传输过程中使用了公开密钥加密机制(PKC)。
2,在运行环境提供了四级安全性保障机制。
分别是:字节码校验器--类装载器--运行时内存布局--文件访问限制