1. 首页
  2. 编程语言
  3. Java
  4. java安全编码指南之:对象构建操作

java安全编码指南之:对象构建操作

上传者: 2022-02-27 14:23:09上传 PDF文件 82.38 KB 热度 6次

程序员肯定是不缺对象的,因为随时都可以构建一个,对象多了肯定会出现点安全问题,一起来看看在java的对象构建中怎么保证对象的安全性吧。考虑下面的一个例子:上面的例子中,我们在构造函数中做了一个securityCheck,因为这个securityCheck返回的值是false,所以会抛出SecurityException。上面的class不是final的,所以我们可以构造一个class去继承它。注意,这里flag需要设置为volatile,只有这样才能保证构造函数在flag设置之前执行。也就是说需要保证happens-before特性。在JDK6或者更高版本中,如果对象的构造函数在java.lang.Object构造函数退出之前引发异常,则JVM将不会执行该对象的finalize方法。否则,Java将在该构造函数的代码中的任何一个执行之前执行超类的默认构造函数,并且将通过隐式调用执行java.lang.Object构造函数。

用户评论