What does the term Plain Old Java Object(POJO) mean ? I couldn't find anything explanatory enough.
POJO's Wikipedia page says that POJO is an ordinary Java Object and not a special object. Now, what makes or what doesn't make and object special in Java ?
The above page also says that a POJO should not have to Extend prespecified classes, Implement prespecified Interfaces or Contain prespecified Annotations. Does that also mean that POJOs are not allowed to implement interfaces like Serializable, Comparable or classes like Applets or any other user-written Class/Interfaces?
Also, does the above policy(no extending, no implementing) means that we are not allowed to use any external libraries, frameworks?
Where exactly are POJOs used?