Un [[JavaBean]] è un POJO che è [[Serializzazione|serializzabile]], ha un [[costruttore]] senza argomenti, e consente l'accesso a proprietà utilizzando metodi ''getter'' e ''setter'' che seguono una semplice convenzione di nominare. A causa di questa convenzione, si può fare delle semplici referenze dichiarative alle proprietà di JavaBeans arbitrarie. Un codice utilizzante tale referenza dichiarativa non sa nulla del tipo del ''bean'' (oggetto singolo), e si può utilizzare il ''bean'' con molti ''framework'' senza questi ''framework'' che hanno accesso al tipo esatto del ''bean''.
La specificazione di JavaBeans, se pienamente implementata, leggeramente viola il modello POJO (come la classe deve implementare l'interfaccia Serializable) ad essere un vero JavaBean. Molte classi di POJO ancora nominate JavaBeans non soddisfano detto requisito. A causa che Serializable è un'interfaccia senza metodo, questo non è un onere.