Beginning Java 7 guides you through version 7 of the Java language and a wide assortment of
platform APIs. New Java 7 language features that are discussed include switch-on-string and
try-with-resources. APIs that are discussed include Threading the Collections Framework the
Concurrency Utilities Swing Java 2D networking JDBC SAX DOM StAX XPath JAX-WS and
SAAJ. This book also presents an introduction to Android app development so that you can apply
some of its knowledge to the exciting world of Android app development. This book presents the
following table of contents: Chapter 1 introduces you to Java and begins to cover the Java
language by focusing on fundamental concepts such as comments identifiers variables
expressions and statements. Chapter 2 continues to explore this language by presenting all of
its features for working with classes and objects. You learn about features related to class
declaration and object creation encapsulation information hiding inheritance polymorphism
interfaces and garbage collection. Chapter 3 focuses on the more advanced language features
related to nested classes packages static imports exceptions assertions annotations
generics and enums. Additional chapters introduce you to the few features not covered in
Chapters 1 through 3. Chapter 4 largely moves away from covering language features (although it
does introduce class literals and strictfp) while focusing on language-oriented APIs. You learn
about Math StrictMath Package Primitive Type Wrapper Classes Reference Reflection String
StringBuffer and StringBuilder Threading BigDecimal and BigInteger in this chapter. Chapter
5 begins to explore Java's utility APIs by focusing largely on the Collections Framework.
However it also discusses legacy collection-oriented APIs and how to create your own
collections. Chapter 6 continues to focus on utility APIs by presenting the concurrency
utilities along with the Objects and Random classes. Chapter 7 moves you away from the
command-line user interfaces that appear in previous chapters and toward graphical user
interfaces. You first learn about the Abstract Window Toolkit foundation and then explore the
Java Foundation Classes in terms of Swing and Java 2D. Appendix C explores Accessibility and
Drag and Drop. Chapter 8 explores filesystem-oriented I O in terms of the File
RandomAccessFile stream and writer reader classes. Chapter 9 introduces you to Java's network
APIs (e.g. sockets). It also introduces you to the JDBC API for interacting with databases
along with the Java DB database product. Chapter 10 dives into Java's XML support by first
presenting an introduction to XML (including DTDs and schemas). It next explores the SAX DOM
StAX XPath and XSLT APIs. It even briefly touches on the Validation API. While exploring
XPath you encounter namespace contexts extension functions and function resolvers and
variables and variable resolvers. Chapter 11 introduces you to Java's support for SOAP-based
and RESTful web services. As well as providing you with the basics of these web service
categories Chapter 11 presents some advanced topics such as working with the SAAJ API to
communicate with a SOAP-based web service without having to rely on JAX-WS. You will appreciate
having learned about XML in Chapter 10 before diving into this chapter. Chapter 12 helps you
put to use some of the knowledge you've gathered in previous chapters by showing you how to use
Java to write an Android app's source code. This chapter introduces you to Android discusses
its architecture shows you how to install necessary tools and develops a simple app. Appendix
A presents the solutions to the programming exercises that appear near the end of Chapters 1
through 12. Appendix B introduces you to Java's Scripting API along with Java 7's support for
dynamically typed languages. Appendix C introduces you to additional APIs and architecture
topics. Examples include Accessibility classloaders Console Drag and Drop Java Native
Interface and System Tray. Appendix D presents a gallery of significant applications that
demonstrate various aspects of Java. Unfortunately there are limits to how much knowledge can
be crammed into a print book. For this reason Appendixes A B C and D are not included in
this book's pages. Instead these appendixes are freely distributed as PDF files. Appendixes A
and B are bundled with the book's associated code file at the Apress website (http:
www.apress.com 9781430239093). Appendixes C and D are bundled with their respective code files
at my TutorTutor.ca website (http: tutortutor.ca cgi-bin makepage.cgi? books bj7).