Java beans are reusable software components that can be visually manipulated in builder tools. They follow certain rules like implementing Serializable and having a no-argument constructor. Beans have properties that determine their appearance and behavior which can be accessed programmatically or visually in property sheets. Common bean components include buttons, text fields, and lists. Builder tools use reflection to read bean properties and allow visual editing of beans.