A JavaBean observes certain rules. Getter/setter naming, having a public default constructor, being serializable, etc. See JavaBeans Conventions for more details.
A POJO (plain-old-Java-object) isn't rigorously established. It's a Java object that doesn't have a requirement to implement a special interface or derive from a particular base class, or make use of appropriate annotations to be compatible with a given framework, and can be any arbitrary (often relatively simple) Java object