Sometimes you have two items and there's a connection between them. For example, you might have an item called University and another item called Student.
The University item might have some fundamental characteristics such as id, name, address, etc. as well as a feature called students:
public class University {
private String id;
private String name;
private String address;
private List<Student> students;
// setters and getters
}
Now when you set a University from the database, JPA loads its id, name, and address fields for you. But you hold two options for students: to load it concomitantly with the rest of the fields (i.e. eagerly) or to load it on-demand (i.e. lazily) while you call the university's getStudents() method.
While a university has many students it is not capable to load all of its students with it when they aren't required. So in suchlike circumstances, you can claim that you want students to be loaded if they are needed. This is called lazy loading.