Implementing event-driven programming with Java objects
Creating and using custom annotations with Java objects
Debugging Java objects and examining their internal state
Exploring reflection and the Java object metadata
Implementing object-oriented design patterns in Java