Intended for Java programmers, this book explains the why of Java. From the fundamentals of Java syntax to its advanced features, it is designed to teach, one step at a time. Design patterns are shown with multiple examples throughout: Adapter, Bridge, Chain of Responsibility, Command, Decorator, Facade, Factory Method, Flyweight, and more.