This book is broken down into five parts:
Part I, "Java Foundation," covers the basics of computer programming as applied to Java programming. It talks about Java's keywords, data types, variables, operators, flow-control, and methods. After reading through Java Foundations, you will understand the major tools you will use to build Java programs later in the book.
Part II, "Object-Oriented Programming," introduces you to the most popular and effective programming paradigm ever seen in computer programming: object-oriented programming. It talks about Java classes, encapsulation, inheritance, and polymorphism. Furthermore, it includes some of the more advanced core features of Java, including interfaces, exception handling, Java's collection classes, and input and output.
Part III, "Graphical User Interfaces," teaches you how to build graphical user interfaces, which are targeted for both applications and applets, using the standard Abstract Window Toolkit as well as advanced user interfaces using Swing. It walks you through a complete derivation of the event-delegation model that drives Java's entire event-handling strategy.
Part IV, "Advanced Topics," brings together the advanced topics that complete what I call the core components of the Java programming language. After this section you should be able to understand any application of Java whether it be applied to the Web, enterprise computing, or mobile computing. The topics include multithreaded programming, Java's introspection and reflection programming interface, the Java Database Connectivity API (JDBC), network programming using raw sockets, and Java's Remote Method Invocation (RMI). The section finishes up with a discussion of best practices and code optimization techniques.
Part V, "Web Technologies," discusses the application of the Java programming language in server-side Web programming. It discusses the modest beginnings of servlets, the more recent and easy-to-use JavaServer Pages (JSP), as well as advanced subjects such as building custom tag libraries to supplement your Web programming and handling XML. Finally, it includes a discussion into proper Web application design and the application of the tried-and-true Model-View-Controller (MVC) design pattern applied to Web design. Because Java Web programming is very flexible, its technology can easily be abused and not yield optimal results; this section addresses the need to ensure that your Web applications are scalable and optimally configured.