Beginning Java 7 [electronic resource] /
Friesen, Jeff.author.
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).
Title Page; Copyright Page; Contents at a Glance; Table of Contents; About the Author; About the Technical Reviewer; Acknowledgments; Introduction; Chapter 1: Getting Started with Java; What Is Java?; Java Is a Language; Java Is a Platform; Installing and Working with JDK 7; Installing JDK 7; Working with JDK 7; Installing and Working with NetBeans 7; Installing NetBeans 7; Working with NetBeans 7; Java Language Fundamentals; Comments; Identifiers; Types; Variables; Expressions; Statements; Summary; Chapter 2: Discovering Classes and Objects; Declaring Classes and Creating Objects
Declaring ClassesCreating Objects with the new Operator and a Constructor; Specifying Constructor Parameters and Local Variables; Creating Arrays with the new Operator; Encapsulating State and Behaviors; Representing State via Fields; Representing Behaviors via Methods; Hiding Information; Initializing Classes and Objects; Inheriting State and Behaviors; Extending Classes; The Ultimate Superclass; Composition; The Trouble with Implementation Inheritance; Changing Form; Upcasting and Late Binding; Abstract Classes and Abstract Methods; Downcasting and Runtime Type Identification
Covariant Return TypesFormalizing Class Interfaces; Declaring Interfaces; Implementing Interfaces; Extending Interfaces; Why Use Interfaces?; Collecting Garbage; Summary; Chapter 3: Exploring Advanced Language Features; Nested Types; Static Member Classes; Nonstatic Member Classes; Anonymous Classes; Local Classes; Interfaces Within Classes; Packages; What Are Packages?; The Package Statement; The Import Statement; Searching for Packages and Types; Playing with Packages; Packages and JAR Files; Static Imports; Exceptions; What Are Exceptions?; Representing Exceptions in Source Code
Throwing ExceptionsHandling Exceptions; Performing Cleanup; Assertions; Declaring Assertions; Using Assertions; Avoiding Assertions; Enabling and Disabling Assertions; Annotations; Discovering Annotations; Declaring Annotation Types and Annotating Source Code; Processing Annotations; Generics; Collections and the Need for Type Safety; Generic Types; Generic Methods; Arrays and Generics; Varargs and Generics; Enums; The Trouble with Traditional Enumerated Types; The Enum Alternative; The Enum Class; Summary; Chapter 4: Touring Language APls; Math and StrictMath; Package
Primitive Type Wrapper ClassBoolean; Character; Float and Double; Integer, Long, Short, and Byte; Reference; Basic Terminology; Reference and ReferenceQueue; SoftReference; WeakReference; PhantomReference; Reflection; String; StringBuffer and StringBuilder; System; Threading; Runnable and Thread; Thread Synchronization; BigDecimal; Biglnteger; Summary; Chapter 5: Collecting Objects; The Collections Framework; Architecture Overview; Iterable and Collection; List; Set; SortedSet; NavigableSet; Queue; Deque; Map; Sorted Map; NavigableMap; Utilities; Legacy Collections APls
Creating Your Own Collections
Includes bibliographical references and index.
Includes index.
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).
Java (Computer program language).
Software engineering.
Java.
Software Engineering/Programming and Operating Systems.