Table of Contents
| Foreword by Gilad Bracha | ||
| Contents | ||
| Preface | ||
| Writing the Second Edition | ||
| About This Book | ||
| Using the Book | ||
| Book Web Sites | ||
| Request for Feedback | ||
| About the Authors | ||
| Acknowledgments (First Edition) | ||
| Acknowledgments (Second Edition) | ||
| 1 | Basics of Java Programming | |
| 1.1 | Introduction | |
| 1.2 | Classes | |
| 1.3 | Objects | |
| 1.4 | Instance Members | |
| 1.5 | Static Members | |
| 1.6 | Inheritance | |
| 1.7 | Aggregation | |
| 1.8 | Tenets of Java | |
| 1.9 | Java Programs | |
| 1.10 | Sample Java Application | |
| 2 | Language Fundamentals | |
| 2.1 | Basic Language Elements | |
| 2.2 | Primitive Data Types | |
| 2.3 | Variable Declarations | |
| 2.4 | Initial Values for Variables | |
| 2.5 | Java Source File Structure | |
| 2.6 | The main() Method | |
| 3 | Operators and Assignments | |
| 3.1 | Precedence and Associativity Rules for Operators | |
| 3.2 | Evaluation Order of Operands | |
| 3.3 | Conversions | |
| 3.4 | Simple Assignment Operator = | |
| 3.5 | Arithmetic Operators: *, /, %, +, - | |
| 3.6 | The Binary String Concatenation Operator + | |
| 3.7 | Variable Increment and Decrement Operators: ++, -- | |
| 3.8 | Boolean Expressions | |
| 3.9 | Relational Operators: <, <=, >, >= | |
| 3.10 | Equality | |
| 3.11 | Boolean Logical Operators: !, ^, &, | | |
| 3.12 | Conditional Operators: &&, || | |
| 3.13 | Integer Bitwise Operators: ~, &, |, ^ | |
| 3.14 | Shift Operators: <<, >>, <<< | |
| 3.15 | The Conditional Operator: ? | |
| 3.16 | Other Operators: new, [], instanceof | |
| 3.17 | Parameter Passing | |
| 3.18 | Passing Primitive Data Values | |
| 3.19 | Passing Object Reference Values | |
| 3.20 | Passing Array References | |
| 3.21 | Array Elements as Actual Parameters | |
| 3.22 | final Parameters | |
| 3.23 | Program Arguments | |
| 4 | Declarations and Access Control | |
| 4.1 | Arrays | |
| 4.2 | Defining Classes | |
| 4.3 | Defining Methods | |
| 4.4 | Constructors | |
| 4.5 | Scope Rules | |
| 4.6 | Packages | |
| 4.7 | Accessibility Modifiers for Top-level Classes and Interfaces | |
| 4.8 | Other Modifiers for Classes | |
| 4.9 | Member Accessibility Modifiers | |
| 4.10 | Other Modifiers for Members | |
| 5 | Control Flow, Exception Handling, and Assertions | |
| 5.1 | Overview of Control Flow Statements | |
| 5.2 | Selection Statements | |
| 5.3 | Iteration Statements | |
| 5.4 | Transfer Statements | |
| 5.5 | Stack-based Execution and Exception Propagation | |
| 5.6 | Exception Types | |
| 5.7 | Exception Handling: try, catch, and finally | |
| 5.8 | throw Statement | |
| 5.9 | throws Clause | |
| 5.10 | Assertions | |
| 6 | Object-oriented Programming | |
| 6.1 | Single Implementation Inheritance | |
| 6.2 | Overriding and Hiding Members | |
| 6.3 | Chaining Constructors Using this() and super() | |
| 6.4 | Interfaces | |
| 6.5 | Completing the Type Hierarchy | |
| 6.6 | Assigning, Passing, and Casting Reference Values | |
| 6.7 | Polymorphism and Dynamic Method Lookup | |
| 6.8 | Inheritance vs. Aggregation | |
| 7 | Nested Classes and Interfaces | |
| 7.1 | Overview of Nested Classes and Interfaces | |
| 7.2 | Static Member Classes and Interfaces | |
| 7.3 | Non-static Member Classes | |
| 7.4 | Local Classes | |
| 7.5 | Anonymous Classes | |
| 8 | Object Lifetime | |
| 8.1 | Garbage Collection | |
| 8.2 | Initializers | |
| 9 | Threads | |
| 9.1 | Multitasking | |
| 9.2 | Overview of Threads | |
| 9.3 | Thread Creation | |
| 9.4 | Synchronization | |
| 9.5 | Thread Transitions | |
| 10 | Fundamental Classes | |
| 10.1 | Overview of the java.lang Package | |
| 10.2 | The Object Class | |
| 10.3 | The Wrapper Classes | |
| 10.4 | The Math Class | |
| 10.5 | The String Class | |
| 10.6 | The StringBuffer Class | |
| 11 | Collections and Maps | |
| 11.1 | The Collections Framework | |
| 11.2 | Collections | |
| 11.3 | Sets | |
| 11.4 | Lists | |
| 11.5 | Maps | |
| 11.6 | Sorted Sets and Sorted Maps | |
| 11.7 | Implementing the equals(), hashCode(), and compareTo() Methods | |
| 11.8 | Working with Collections | |
| A | Taking the SCPJ2 1.4 Exam | |
| A.1 | Preparing for the Programmer Exam | |
| A.2 | Registering for the Exam | |
| A.3 | How the Examination Is Conducted | |
| A.4 | The Questions | |
| A.5 | Moving on to the Developer Exam | |
| B | Objectives for the SCPJ2 1.4 Exam | |
| C | Objectives for the Java 2 Platform Upgrade Exam | |
| D | Annotated Answers to Review Questions | |
| E | Solutions to Programming Exercises | |
| F | Mock Exam | |
| G | Number Systems and Number Representation | |
| G.1 | Number Systems | |
| G.2 | Relationship between Binary, Octal, and Hexadecimal Numbers | |
| G.3 | Converting Decimals | |
| G.4 | Representing Integers | |
| H | About the CD | |
| H.1 | Whizlabs Exam Simulators | |
| H.2 | Items from the Book | |
| Index | ||
(621 pages)
Table of Contents can also be downloaded as a PDF.
