Persistence is the term used in computer science to describe a capability used by a computer programmer to store data structures in non-volatile storage such as a file system or a relational database.

Without this capability data structures only exist in-memory, and will be lost when a program exits. Persistence allows, for example, a program to be restarted and re-loaded with the data structures from a previous invocation of the program.

Design patterns solving this problem are container based persistence and component based persistence.

Examples of persistence are using Java serialization to store Java objectss on disk or using J2EE to store Enterprise Java Beans in a relational database.