java的安全性首先体现在它的异常机制,java提供了异常机制,使得在程序的编译期间或者运行期间,当发生异常情况时,可以抛出一个异常对象,让线程停止执行,避免线程以一个异常状态继续向下执行而得到错误的执行结果。
还体现在类加载器的双亲委派机制,当jvm需要加载一个类的时候,它的类加载器会用双亲委派机制去处理这个加载请求,也就是,类加载器在收到类加载请求时并不会立马去处理它,而是将这个加载请求委托给自己的父加载器去处理,父加载器如果还有父加载器,那就继续向上委托,一直到达最顶部的启动类加载器,启动类加载器如果可以处理这个加载请求就去处理它,如果不能处理,再由子加载器加载。双亲委派机制能够避免类的重复加载以及类被恶意篡改,也是java安全性的一个体现。
还体现在类加载时的验证机制,在类被加载的过程中,jvm会对这个class文件进行字节码的验证,只有符合jvm字节码规范的class文件才能被成功加载到内存中,这个验证机制保证了字节码文件不会对jvm造成攻击。
还体现在java的gc机制。jvm提供了垃圾收集器,收集程序执行过程中在内存中堆积起来的垃圾对象,以释放它们所占用的内存,避免内存溢出的问题发生。