A security manager is an object that is used to check whether the operation we want to perform is not violating the security policy of the operating system.
Sometimes we want to perform any operation and get an exception

Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.io.FilePermission characteroutput.txt write)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
        at java.security.AccessController.checkPermission(AccessController.java:546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
        at java.io.FileWriter.<init>(FileWriter.java:46)

To Prevent this exception we can use SecurityManager class to check for the permission before performing an operation.

The security manager is an object of the type SecurityManager to obtain a reference to this object, invoke.System.getSecurityManager

SecurityManager appsm = System.getSecurityManager();

If there is no security manager, this method returns.null

The SecurityManager class defines many other methods used to verify other kinds of operations. For example, SecurityManager.checkAccess verifies thread accesses, and verifiesSecurityManager.checkPropertyAccess access to the specified property. Each operation or group of operations has its owncheckXXX() method.
In addition, the set of methodscheckXXX() represents the set of operations that are already subject to the protection of the security manager. Typically, an application does not have to directly invoke any methodscheckXXX().