Он будет обращаться к 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.