A POJO just means a "plain old java object". A POJO can be *any* Java object.
A JavaBean is a Java object that satisfies certain programming conventions:
- the JavaBean class must implement either Serializable or Externalizable
- the JavaBean class must have a no-arg constructor
- all JavaBean properties must public setter and getter methods (as appropriate)
- all JavaBean instance variables should be private
So... all JavaBeans are POJOs but not all POJOs are JavaBeans. A JavaBean is a POJO that follows certain coding conventions.