The non-access modifiers in Java include static, final, abstract, synchronized, transient, and volatile. Static can be used for variables and methods and creates elements that exist independently of any class instances. Final can also be used for variables, methods, and classes and prevents reassignment, overriding, or subclassing. Synchronized ensures only one thread can access a method at a time. Transient skips serialization for variables. Volatile ensures updates to a variable are visible across threads.