Figures xix Tables xxi Examples xxiii Foreword xxvii Preface xxix Chapter 1: Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 1.3 Objects 4 1.4 Instance Members 6 1.5 Static Members 7 1.6 Inheritance 10 1.7 Associations: Aggregation and Composition 12 1.
8 Tenets of Java 13 1.9 Java Programs 15 1.10 Sample Java Application 16 1.11 Program Output 18 1.12 The Java Ecosystem 21 Chapter 2: Language Fundamentals 27 2.1 Basic Language Elements 28 2.2 Primitive Data Types 37 2.3 Variable Declarations 40 2.
4 Initial Values for Variables 42 Chapter 3: Declarations 47 3.1 Class Declarations 48 3.2 Method Declarations 49 3.3 Constructors 53 3.4 Arrays 58 3.5 Parameter Passing 72 3.6 Variable Arity Methods 81 3.7 The main() Method 85 3.
8 Enumerated Types 87 Chapter 4: Access Control 95 4.1 Java Source File Structure 96 4.2 Packages 97 4.3 Searching for Classes 107 4.4 Scope Rules 114 4.5 Accessibility Modifiers for Top-Level Type Declarations 118 4.6 Non-Accessibility Modifiers for Classes 120 4.7 Member Accessibility Modifiers 123 4.
8 Non-Accessibility Modifiers for Members 131 Chapter 5: Operators and Expressions 143 5.1 Conversions 144 5.2 Type Conversion Contexts 147 5.3 Precedence and Associativity Rules for Operators 150 5.4 Evaluation Order of Operands 152 5.5 Representing Integers 154 5.6 The Simple Assignment Operator = 158 5.7 Arithmetic Operators: *, /, %, +, - 163 5.
8 The Binary String Concatenation Operator + 174 5.9 Variable Increment and Decrement Operators: ++, -- 176 5.10 Boolean Expressions 180 5.11 Relational Operators: , >= 180 5.12 Equality 181 5.13 Boolean Logical Operators: !, ^, &, 184 5.14 Conditional Operators: &&, 186 5.15 Integer Bitwise Operators: ~, &, , ^ 189 5.
16 The Conditional Operator: ?: 194 5.17 Other Operators: new, [], instanceof, -> 195 Chapter 6: Control Flow 199 6.1 Overview of Control Flow Statements 200 6.2 Selection Statements 200 6.3 Iteration Statements 213 6.4 Transfer Statements 219 6.5 Stack-Based Execution and Exception Propagation 230 6.6 Exception Types 233 6.
7 Exception Handling: try, catch, and finally 238 6.8 The throw Statement 249 6.9 The throws Clause 251 6.10 Advantages of Exception Handling 254 Chapter 7: Object-Oriented Programming 263 7.1 Single Implementation Inheritance 264 7.2 Overriding Methods 268 7.3 Hiding Members 275 7.4 The Object Reference super 276 7.
5 Chaining Constructors Using this() and super() 282 7.6 Interfaces 290 7.7 Arrays and Subtyping 309 7.8 Reference Values and Conversions 311 7.9 Reference Value Assignment Conversions 312 7.10 Method Invocation Conversions Involving References 315 7.11 Reference Casting and the instanceof Operator 320 7.12 Polymorphism and Dynamic Method Lookup 329 7.
13 Inheritance versus Aggregation 331 7.14 Basic Concepts in Object-Oriented Design 334 Chapter 8: Fundamental Classes 341 8.1 Overview of the java.lang Package 342 8.2 The Object Class 342 8.3 The Wrapper Classes 346 8.4 The String Class 357 8.5 The StringBuilder and StringBuffer Classes 374 Chapter 9: Object Lifetime 383 9.
1 Garbage Collection 384 9.2 Reachable Objects 384 9.3 Facilitating Garbage Collection 386 9.4 Object Finalization 390 9.5 Finalizer Chaining 391 9.6 Invoking Garbage Collection Programmatically 393 9.7 Initializers 399 9.8 Field Initializer Expressions 400 9.
9 Static Initializer Blocks 402 9.10 Instance Initializer Blocks 404 9.11 Constructing Initial Object State 406 Chapter 10: The ArrayList Class and Lambda Expressions 413 10.1 The ArrayList Class 414 10.2 Lambda Expressions 433 Chapter 11: Date and Time 461 11.1 Basic Date and Time Concepts 462 11.2 Working with Temporal Classes 462 11.3 Working with Periods 476 11.
4 Formatting and Parsing 486 Appendix A: Taking the Java SE 8 Programmer I Exam 507 A.1 Preparing for the Exam 507 A.2 Registering for the Exam 508 A.3 How the Exam Is Conducted 510 A.4 The Questions 511 Appendix B: Exam Topics: Java SE 8 Programmer I 515 Appendix C: Annotated Answers to Review Questions 519 Appendix D: Solutions to Programming Exercises 553 Appendix E: Mock Exam: Java SE 8 Programmer I 571 Appendix F: Annotated Answers to Mock Exam I 605 Index 619.