The static keyword in Java is used for memory management. Static can be applied to variables, methods, blocks, and nested classes. Static members belong to the class rather than objects of the class. Static variables and methods are used for properties and behaviors that are common to all objects. A static nested class can access static members of the outer class without creating an instance of the outer class.