仅在代码表明正确的情况下,才咨询SecurityManager。它不会对每个操作都执行此操作。
例如,在中
Runtime.exit,您看到使用了SecurityManager:
public void exit(int status) {SecurityManager security = System.getSecurityManager();if (security != null) { security.checkExit(status);}Shutdown.exit(status);}同样,在中
File,您将看到大多数方法都咨询SecurityManager。例:
public boolean canWrite() {SecurityManager security = System.getSecurityManager();if (security != null) { security.checkWrite(path);}return fs.checkAccess(this, FileSystem.ACCESS_WRITE);}如果编写的方法可能是“危险的”,则还应该咨询SecurityManager。



