JavaBeans components, or Beans, are reusable software components that can be manipulated visually in a builder tool. Beans can be combined to create traditional applications, or their smaller web-oriented brethren, applets. In addition, applets can be designed to work as reusable Beans.
Individual Beans will function quite differently, but typical unifying features that distinguish a Bean are:
► Introspection: enables a builder tool to analyze how a Bean works
► Customization: enables a developer to use an app builder tool to customize the appearance and behavior of a Bean
► Events: enables Beans to communicate and connect together
► Properties: enable developers to customize and program with Beans
► Persistence: enables developers to customize Beans in an app builder, and then retrieve those Beans, with customized features intact, for future use.