POJO stands for “Plain Old Java Object” — it’s a pure data structure that has fields with getters and possibly setters, and may override some methods from Object (e.g. equals) or some other interface like Serializable, but does not have behavior of its own.
Normal Class: A Java class
- All properties private (use getters/setters)
- A public no-argument constructor
- Implements Serializable.
Pojo: Plain Old Java Object is a Java object not bound by any restriction other than those forced by the Java Language Specification. I.e., a POJO should not have to
- Extend prespecified classes
- Implement prespecified interface
- Contain prespecified annotations