From Wikipedia

In software engineering, a plain old Java object (POJO) is an ordinary Java object, not bound by any special restriction and not requiring any class path. The term was coined by Martin Fowler, Rebecca Parsons and Josh MacKenzie in September 2000: [

Ideally speaking, a POJO 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

  1. Extend prespecified classes, as in
    public class Foo extends javax.servlet.http.HttpServlet { ...
  2. Implement prespecified interfaces, as in
    public class Bar implements javax.ejb.EntityBean { ...
  3. Contain prespecified annotations, as in
    @javax.persistence.Entity public class Baz { ...