Java Rules (Paperback)
$299Java Event Handling (Paperback)
$399.NET Architecture and Programming Using Visual C++ (Paperback)
$788C++ : A Dialog: Programming with the C++ Standard Library (Paperback)
Detailed yet accessible, Java™ Rules is a comprehensive reference for the application programmer who needs to master the intricacies of the Java™ programming language. Thoroughly describing the core of the Java programming language and the Java™ virtual machine (JVM™), Java™ Rules makes it possible for programmers to efficiently master the Java platform.
Based on the second editions of The Java™ Language Specification and The Java™ Virtual Machine Specification, Java™ Rules presents a subset of those specifications in a gentle tutorial style. From platform basics to APIs, this encyclopedic guidebook reveals every facet of the language--including previously undocumented features. Throughout the book, practical tutorials are supported with official language documentation or with insights shared by respected leaders. The book's unique format and conversational style are ideally suited for experienced programmers seeking a short path to language proficiency.
As both a tutorial and detailed reference, this volume of Java™ Rules covers:
- Lexical structure, escape sequences, and positional notation systems
- The anatomy of a compilation unit
- The five kinds of classes and interfaces
- Containment and inner class hierarchies (versus inheritance hierarchies)
- The static modifier, this and super
- Primitive data types and Object
- Strings and other common data types
- Arrays and the Collections Framework
With Java™ Rules in hand, both novices and experienced programmers can quickly master the language.
Table of Contents
About This Book.
A Java Tradition.
1. Lexical Structure.
2. Compilation Units.
The Terminology of Class Body Declarations.
Recognizing Constructors in Source Code.
Anatomy of a Compilation Unit.
The Significance of Textual Order.
Limit of One “public” Package Member.
The Members of a Package.
Using the SDK to Develop Packages.
Importing Nested Classes of All Sorts (Top-Level or Inner).
How Import Declarations are Used by a Compiler.
The Efficiency of Type-Import-on-Demand Declarations.
Interface Type Declarations.
The Definition of Top-Level Classes.
Helper Classes are Not Fundamentally Different.
The Five Kinds of Classes and Interfaces.
Non-“public” Member Classes.
Local and Anonymous Classes.
Choosing Which Kind of Class to Use.
The Rationale for Containment and Inner Class Hierarchies.
Containment and Inner Class Hierarchies.
Inner Class Hierarchies.
3. The “static” Modifier, “this,” and “super” .
The “static” Modifier.
The Definition of “static” Context.
The “this” and “super” Keywords.
The Direct Superclass (“super” ).
Practical Uses of the “this” and “super” Keywords.
Multiple Current Instances (a.k.a. Levels).
Qualifying the “this” Keyword.
Qualifying the “new” Keyword.
Qualifying the “super” Keyword.
4. Primitive Data Types and Object.
The Definition of Data Types.
The Object-Oriented Definition of Type.
Numeric Data Types.
Understanding the Floating-Point Types.
The “char” Data Type.
The “boolean” Data Type.
The “null” Type.
The “Number” Class.
The “java.math” Package.
The “BigDecimal” Class.
Rounding the Result of a Floating-Point Operation.
Using Integral Types to Store Monetary Values.
Primitive Type Wrapper Classes.
Converting Primitive Numeric Types to Strings.
Bit Pattern Manipulation.
Accessing Primitive Type System Properties.
Unicode Utility Methods.
The “Object” Class.
Understanding Hash Tables.
The Five Housekeeping Methods.
The Comparison Methods.
What is Natural Ordering?
Reverse Order (or Descending) Sorts.
Sorting By More Than One Field.
The “Comparable” Interface.
The “Comparator” Interface.
5. Strings and Other Common Data Types.
Would-Be Mutator Methods.
The Length of a “String” or “StringBuffer” .
The Capacity of a “StringBuffer” .
Checked Exceptions in String and “StringBuffer” .
The “String” Class.
Accessing Individual Characters or Substrings.
“char” to “String” Conversions and Vice Versa.
Translating Locally Encoded Strings.
Miscellaneous Methods in the “String” Class.
Unusual Constructors in the “String” Class.
The “StringBuffer” Class.
Other Methods in the “StringBuffer” Class.
Other String-Related Classes.
The “StringReader” and “StringWriter” Classes.
The “StringTokenizer” Class.
The “StreamTokenizer” Class.
String Concatenation Operations.
Implicit String Conversions.
The Intern Mechanism.
Shared Character Buffers.
Displaying Diagnostic Messages on the Console.
The “print” and “println” Methods.
The Locale” Class.
The “Date” Class.
The “GregorianCalendar” Class.
The Inconsistent Field Rule.
The Maximum DAY_OF_MONTH Rule.
Date and Time Fields in the Calendar Class.
Normalizing Date and Time Fields.
Date and Time Field Manipulation Methods.
The “TimeZone” Class.
Understanding the Difference between i18n and l10n.
The Localization of Common Data Types.
Formatting Dates and Times.
6. Arrays and The Collections Framework.
Array, Component, and Element Types.
Array Classes Are Dynamically Created.
The Members of an Array Type.
Array Type Variable Declarations.
Initializing Array Type Variables.
Array Access Expressions.
A Bridge over Troubled Waters (the “toArray” Methods).
Untyped References versus Parameterized Types.
Time Complexities (or Big-O Notation).
Amortized Constant Time.
The Equivalence Relationship and Elements.
The Collections Framework.
The Principle of Maximum Generality.
The “Collection” Interface.
The Map Interface.
Housekeeping Methods for Containers.
Performance Tuning the General-Purpose Implementations.
Range Views (Sublists, Subsets, and Submaps).
Collection Views of a Map.
List View of an Array.
Using Collection Views to Iterate over a Map.
A Poor Man's Collection.
Iterating Backwards Through a “TreeSet” or “TreeMap” .
Al-Khwarizmi Concerning the Hindu Art of Reckoning.
Utility Methods for “Arrays” and Other “Collections” .
Cloning versus Copying a Container.
The Minimum and Maximum Elements.
An “equals” Method for Arrays.
Custom Implementations of the Core Collection Interfaces.
Multimaps and Multidimensional Arrays.