Table of Contents
Introduction xxi
Assessment Test xxxi
Chapter 1 Java Building Blocks 1
Understanding the Java Class Structure 2
Fields and Methods 2
Comments 4
Classes vs. Files 5
Writing a main() Method 6
Understanding Package Declarations and Imports 9
Wildcards 10
Redundant Imports 11
Naming Conflicts 12
Creating a New Package 13
Code Formatting on the Exam 16
Creating Objects 16
Constructors 17
Reading and Writing Object Fields 18
Instance Initializer Blocks 18
Order of Initialization 19
Distinguishing Between Object References and Primitives 20
Primitive Types 20
Reference Types 24
Key Differences 25
Declaring and Initializing Variables 25
Declaring Multiple Variables 26
Identifiers 27
Understanding Default Initialization of Variables 29
Local Variables 29
Instance and Class Variables 30
Understanding Variable Scope 31
Ordering Elements in a Class 34
Destroying Objects 36
Garbage Collection 36
finalize() 38
Benefits of Java 39
Summary 40
Exam Essentials 41
Review Questions 42
Chapter 2 Operators and Statements 51
Understanding Java Operators 52
Working with Binary Arithmetic Operators 53
Arithmetic Operators 53
Numeric Promotion 55
Working with Unary Operators 57
Logical Complement and Negation Operators 57
Increment and Decrement Operators 58
Using Additional Binary Operators 60
Assignment Operators 60
Compound Assignment Operators 62
Relational Operators 63
Logical Operators 64
Equality Operators 65
Understanding Java Statements 66
The if-then Statement 67
The if-then-else Statement 68
The switch Statement 72
The while Statement 76
The do-while Statement 78
The for Statement 80
Understanding Advanced Flow Control 86
Nested Loops 87
Adding Optional Labels 87
The break Statement 88
The continue Statement 90
Summary 92
Exam Essentials 92
Review Questions 94
Chapter 3 Core Java APIs 101
Creating and Manipulating Strings 102
Concatenation 102
Immutability 104
The String Pool 105
Important String Methods 105
Method Chaining 110
Using the StringBuilder Class 111
Mutability and Chaining 112
Creating a StringBuilder 113
Important StringBuilder Methods 114 StringBuilder vs. StringBuffer 117
Understanding Equality 117
Understanding Java Arrays 119
Creating an Array of Primitives 119
Creating an Array with Reference Variables 121
Using an Array 123
Sorting 124
Searching 125
Varargs 126
Multidimensional Arrays 126
Understanding an ArrayList 129
Creating an ArrayList 129
Using an ArrayList 130
Wrapper Classes 134
Autoboxing 136
Converting Between array and List 136
Sorting 138
Working with Dates and Times 138
Creating Dates and Times 138
Manipulating Dates and Times 142
Working with Periods 145
Formatting Dates and Times 148
Parsing Dates and Times 151
Summary 151
Exam Essentials 152
Review Questions 153
Chapter 4 Methods and Encapsulation 165
Designing Methods 166
Optional Specifiers 168
Return Type 169
Method Name 170
Parameter List 171
Optional Exception List 171
Method Body 171
Working with Varargs 172
Applying Access Modifiers 173
Private Access 173
Default (Package Private) Access 175
Protected Access 176
Public Access 180
Designing Static Methods and Fields 181
Calling a Static Variable or Method 182
Static vs. Instance 183
Static Variables 185
Static Initialization 186
Static Imports 187
Passing Data Among Methods 188
Overloading Methods 191
Creating Constructors 196
Default Constructor 197
Overloading Constructors 199
Final Fields 202
Order of Initialization 202
Encapsulating Data 205
Creating Immutable Classes 207
Writing Simple Lambdas 208
Lambda Example 209
Lambda Syntax 211
Predicates 214
Summary 215
Exam Essentials 216
Review Questions 218
Chapter 5 Class Design 233
Introducing Class Inheritance 234
Extending a Class 235
Applying Class Access Modifiers 237
Creating Java Objects 237
Defining Constructors 238
Calling Inherited Class Members 244
Inheriting Methods 246
Inheriting Variables 257
Creating Abstract Classes 259
Defining an Abstract Class 260
Creating a Concrete Class 262
Extending an Abstract Class 263
Implementing Interfaces 266
Defining an Interface 267
Inheriting an Interface 269
Interface Variables 273
Default Interface Methods 274
Static Interface Methods 278
Understanding Polymorphism 279
Object vs. Reference 281
Casting Objects 282
Virtual Methods 284
Polymorphic Parameters 285
Polymorphism and Method Overriding 287
Summary 288
Exam Essentials 289
Review Questions 291
Chapter 6 Exceptions 299
Understanding Exceptions 300
The Role of Exceptions 300
Understanding Exception Types 302
Throwing an Exception 304
Using a try Statement 305
Adding a finally Block 307
Catching Various Types of Exceptions 309
Throwing a Second Exception 311
Recognizing Common Exception Types 313
Runtime Exceptions 314
Checked Exceptions 317
Errors 317
Calling Methods That Throw Exceptions 318
Subclasses 319
Printing an Exception 321
Summary 323
Exam Essentials 324
Review Questions 325
Appendix A Answers to Review Questions 333
Chapter 1: Java Building Blocks 334
Chapter 2: Operators and Statements 336
Chapter 3: Core Java APIs 339
Chapter 4: Methods and Encapsulation 342
Chapter 5: Class Design 346
Chapter 6: Exceptions 349
Appendix B Study Tips 353
Studying for the Test 354
Creating a Study Plan 354
Creating and Running Sample Applications 355
Taking the Test 359
Understanding the Question 359
Applying Process of Elimination 362
Optimizing Your Time 364
Getting a Good Night’s Rest 366 Index 367