Originally, Java Beans were meant to be a kind of software components, optionally with a GUI, that were programmed to certain conventions so that tools could easily use them for example in a graphical GUI editor.
A Java Bean is really just a Java class that conforms to the Java Bean conventions:
It must have a public no-args constructor.
It has getter and setter methods to set its properties.
It should be Serializable.
The standard Java API contains a package, java.beans, that has classes and interfaces that you can use to dynamically inspect beans (find out which properties a bean has, get and set them, etc.).