Skip to main content

OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808

OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808

Jeanne Boyarsky, Scott Selikoff

ISBN: 978-1-118-95740-0

Feb 2015

432 pages

In Stock


* VAT information


Full coverage of functional programming and all OCA Java Programmer exam objectives

OCA, Oracle Certified Associate Java SE 8 Programmer I Study Guide, Exam 1Z0-808 is a comprehensive study guide for those taking the Oracle Certified Associate Java SE 8 Programmer I exam (1Z0-808). With complete coverage of 100% of the exam objectives, this book provides everything you need to know to confidently take the exam. The release of Java 8 brought the language's biggest changes to date, and for the first time, candidates are required to learn functional programming to pass the exam. This study guide has you covered, with thorough functional programming explanation and information on all key topic areas Java programmers need to know. You'll cover Java inside and out, and learn how to apply it efficiently and effectively to create solutions applicable to real-world scenarios.

  • Work confidently with operators, conditionals, and loops
  • Understand object-oriented design principles and patterns
  • Master functional programming fundamentals

Related Resources

OCA / OCP Java SE 8 Programmer Certification Kit: Exam 1Z0-808 and Exam 1Z0-809

This item: OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808

OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809

(Paperback £42.50)

OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808

(Paperback £50.00)

Original Price:£92.50

Purchased Together:£75.00

save £17.50

* VAT information

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

ChapterPageDetailsDatePrint Run
Text Correction,Intro mock question #9: there is a stray 'a' after (Choose all that apply) 04/02/15
Text Correction,Intro mock question #9: there is a stray 'a' after (Choose all that apply)05/01/15
IntroductionxxxixErrata in text,Corrections in Book and Online:

In Point number 1:
Currently reads: a_b defaults to a null value
Should read: $ defaults to 0

In Point number 3:
'Puma is invalid' should be 'Cougar is invalid' for the explanation for D

'E is incorrect' should be 'E is correct'

In Point number 4:
The first bullet should say 'starts' rather than 'continues'

'With y taking a new value' should be 'With count taking a new value'

Also, in the second bullet, 1 + 4 should say 1 + 5.
IntroductionxliErrata in Text,Point Number 10 currently reads:Reference one points to g1
Should read:Reference two points to g2

Point Number 13 currently reads:D and E are correct
Should read:D and E are incorrect
IntroductionxliiErrata in text,Corrections in Book and Online:

Point number 16:
Currently Reads:
'because an interface may inherit two abstract methods with the same signature'

Should Read:
'because a class may inherit two abstract methods with the same signature'
1Chapter 1Errata in text,eBook Correction Only:

In some of the review questions, the line break is missing between the code that would be in different files. You can assume that each package statement starts a new file.
14Errata in text,Corrections in Book Only:

'each of these five words is in' should be 'each of these six words is in'
18Errata in text,The code currently reads:

Should Read:
110Errata in text,In the fourth line of the second paragraph, 'From example' should be 'For example'.22-Feb-16
112Errata in text,Corrections in Book Only:

'java.nio.files.Paths' should be 'java.nio.file.Paths'
Note:This change should carried out in two instances
118Errata in text,Corrections in Book Only:

The middle code block should have } instead of { on line 5.
130Errata in text,The compiler error message at the top of the page should refer to line 7 rather than line 5.22-Feb-16
131Errata in text,At the end of the second paragraph, 'simplest type it can give the value' should be 'simplest value it can give the type'22-Feb-16
253Errata in text,Corrections in Book Only:

On the first line of table 2.1, ~ should be in the other unary operators section. And on the last line of the table, !=, should be |=.
254Errata in text,Corrections in Book Only:

In 'resulting in a value of x of 7. Make sure you understand why the result is 24', the 7 should be 14
254Errata in text,Corrections in Book Only:

In 'int x = 2 * ((5 + 3) * 4 - 8); This time you would evaluate the addition operator 10 + 3', the 10 should be 5.