A final class in Java is a class declared with the final keyword that cannot be inherited by subclasses. Final classes provide security by preventing unauthorized access through inheritance. They allow for immutable classes, which must be declared final. Some key uses of final classes are to prevent inheritance of sensitive or secured classes, and to create immutable classes that cannot be modified.