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

  • ID: 3387136
  • Book
  • 720 Pages
  • John Wiley and Sons Ltd
1 of 4
Covers 100% of exam objectives, including advanced class design, functional programming, concurrency, JDBC, and much more...

Includes online interactive learning environment with:

+3 custom practice exams

+More than 250 electronic flashcards

+Searchable key term glossary

Your Complete Guide to preparing for OCP Exam 1Z0–809

The OCP, Oracle Certified Professional Java SE 8 Programmer II Study Guide is your one–stop resource for complete coverage of Exam 1Z0–809. This Sybex Study Guide covers 100% of exam objectives and guides you through the process of re–learning key Java APIs, now that nearly every framework in Java 8 has been updated to include lambda expressions and streams. You'll prepare for the exam smarter and faster with Sybex thanks to superior content including assessment tests that check exam readiness, key topic exam essentials, an appendix custom tailored for those taking the upgrade Exams 1Z0–810 or 1Z0–813, and much more. Reinforce what you have learned with the Sybex online learning environment and test bank, accessible across multiple devices. Get prepared for the OCP exam with Sybex.

Coverage of 100% of all exam objectives in this Study Guide means you'll be ready for:

- Creating and applying lambda expressions
- Demonstrating functional programming competence
- Applying Object–Oriented design principles and design patterns
- Working with generics, collections, and class design
- Inheriting abstract classes and interfaces
- Dealing with exceptions and assertions
- Working with IO, NIO.2, JDBC, threads, and concurrency
- Handling advanced strings and localization

Interactive learning environment

Take your exam prep to the next level with Sybex's superior interactive online study tools. To access our learning environment, simply visit [external URL] type in your unique PIN, and instantly gain access to:

- Interactive test bank with 3 bonus practice exams. Practice exams help you identify areas where further review is needed. Get more than 90% of the answers correct, and you're ready to take the certification exam. 180 questions total!
- More than 250 Electronic Flashcards to reinforce learning and last minute prep before the exam
- Comprehensive glossary in PDF format gives you instant access to the key terms so you are fully prepared
READ MORE
Note: Product cover images may vary from those shown
2 of 4
Introduction xix

Assessment Test xxxviii

Chapter 1 Advanced Class Design 1

Reviewing OCA Concepts 2

Access Modifiers 2

Overloading and Overriding 4

Abstract Classes 5

Static and Final 6

Imports 6

Using instanceof 7

Understanding Virtual Method Invocation 9

Annotating Overridden Methods 11

Coding equals, hashCode, and toString 13

toString 13

equals 15

hashCode 18

Working with Enums 20

Using Enums in Switch Statements 21

Adding Constructors, Fields, and Methods 22

Creating Nested Classes 24

Member Inner Classes 25

Local Inner Classes 27

Anonymous Inner Classes 29

Static Nested Classes 31

Summary 33

Exam Essentials 34

Review Questions 36

Chapter 2 Design Patterns and Principles 47

Designing an Interface 48

Purpose of an Interface 51

Introducing Functional Programming 52

Defining a Functional Interface 53

Implementing Functional Interfaces with Lambdas 55

Applying the Predicate Interface 60

Implementing Polymorphism 61

Distinguishing between an Object and a Reference 63

Casting Object References 64

Understanding Design Principles 66

Encapsulating Data 66

Creating JavaBeans 69

Applying the Is]a Relationship 71

Applying the Has]a Relationship 73

Composing Objects 74

Working with Design Patterns 75

Applying the Singleton Pattern 76

Creating Immutable Objects 82

Using the Builder Pattern 86

Creating Objects with the Factory Pattern 89

Summary 93

Exam Essentials 93

Review Questions 95

Chapter 3 Generics and Collections 103

Reviewing OCA Collections 104

Array and ArrayList 104

Searching and Sorting 105

Wrapper Classes and Autoboxing 106

The Diamond Operator 107

Working with Generics 108

Generic Classes 109

Generic Interfaces 112

Generic Methods 114

Interacting with Legacy Code 114

Bounds 117

Putting It All Together 122

Using Lists, Sets, Maps, and Queues 124

Common Collections Methods 125

Using the List Interface 127

Using the Set Interface 132

Using the Queue Interface 134

Map 138

Comparing Collection Types 140

Comparator vs. Comparable 143

Comparable 143

Comparator 146

Searching and Sorting 150

Additions in Java 8 152

Using Method References 152

Removing Conditionally 154

Updating All Elements 155

Looping through a Collection 155

Using New Java 8 Map APIs 155

Summary 159

Exam Essentials 161

Review Questions 162

Chapter 4 Functional Programming 171

Using Variables in Lambdas 172

Working with Built–In Functional Interfaces 173

Implementing Supplier 174

Implementing Consumer and BiConsumer 175

Implementing Predicate and BiPredicate 177

Implementing Function and BiFunction 178

Implementing UnaryOperator and BinaryOperator 180

Checking Functional Interfaces 181

Returning an Optional 182

Using Streams 185

Creating Stream Sources 188

Using Common Terminal Operations 189

Using Common Intermediate Operations 196

Putting Together the Pipeline 200

Printing a Stream 204

Working with Primitives 205

Creating Primitive Streams 205

Using Optional with Primitive Streams 208

Summarizing Statistics 210

Learning the Functional Interfaces for Primitives 210

Working with Advanced Stream Pipeline Concepts 213

Linking Streams to the Underlying Data 213

Chaining Optionals 214

Collecting Results 217

Summary 223

Exam Essentials 224

Review Questions 226

Chapter 5 Dates, Strings, and Localization 233

Working with Dates and Times 234

Creating Dates and Times 235

Manipulating Dates and Times 241

Working with Periods 244

Working with Durations 247

Accounting for Daylight Savings Time 251

Reviewing the String class 253

Adding Internationalization and Localization 255

Picking a Locale 256

Using a Resource Bundle 258

Formatting Numbers 267

Formatting Dates and Times 270

Summary 273

Exam Essentials 274

Review Questions 276

Chapter 6 Exceptions and Assertions 283

Reviewing Exceptions 284

Exceptions Terminology 284

Categories of Exceptions 285

Exceptions on the OCP 286

Try Statement 288

Throw vs. Throws 289

Creating Custom Exceptions 289

Using Multi–catch 291

Using Try–With–Resources 296

Try–With–Resources Basics 298

AutoCloseable 300

Suppressed Exceptions 302

Putting It Together 305

Rethrowing Exceptions 305

Working with Assertions 308

The assert Statement 308

Enabling Assertions 309

Using Assertions 310

Summary 314

Exam Essentials 315

Review Questions 316

Chapter 7 Concurrency 325

Introducing Threads 327

Distinguishing Thread Types 328

Understanding Thread Concurrency 328

Introducing Runnable 330

Creating a Thread 331

Polling with Sleep 334

Creating Threads with the ExecutorService 335

Introducing the Single–Thread Executor 335

Shutting Down a Thread Executor 337

Submitting Tasks 338

Waiting for Results 340

Scheduling Tasks 345

Increasing Concurrency with Pools 348

Synchronizing Data Access 350

Protecting Data with Atomic Classes 352

Improving Access with Synchronized Blocks 354

Synchronizing Methods 356

Understanding the Cost of Synchronization 357

Using Concurrent Collections 358

Introducing Concurrent Collections 358

Understanding Memory Consistency Errors 359

Working with Concurrent Classes 360

Obtaining Synchronized Collections 365

Working with Parallel Streams 366

Creating Parallel Streams 366

Processing Tasks in Parallel 367

Processing Parallel Reductions 372

Managing Concurrent Processes 377

Creating a CyclicBarrier 377

Applying the Fork/Join Framework 381

Identifying Threading Problems 387

Understanding Liveness 387

Managing Race Conditions 391

Summary 392

Exam Essentials 393

Review Questions 394

Chapter 8 IO 405

Understanding Files and Directories 406

Conceptualizing the File System 406

Introducing the File Class 407

Introducing Streams 411

Stream Fundamentals 411

Stream Nomenclature 412

Common Stream Operations 418

Working with Streams 420

The FileInputStream and FileOutputStream Classes 420

The FileReader and FileWriter classes 424

The ObjectInputStream and ObjectOutputStream Classes 426

The PrintStream and PrintWriter Classes 432

Review of Stream Classes 435

Interacting with Users 437

The Old Way 437

The New Way 438

Summary 442

Exam Essentials 443

Review Questions 445

Chapter 9 NIO.2 453

Introducing NIO.2 454

Introducing Path 455

Creating Paths 456

Interacting with Paths and Files 460

Providing Optional Arguments 461

Using Path Objects 462

Interacting with Files 471

Understanding File Attributes 478

Discovering Basic File Attributes 478

Improving Access with Views 483

Presenting the New Stream Methods 487

Conceptualizing Directory Walking 487

Walking a Directory 488

Searching a Directory 490

Listing Directory Contents 491

Printing File Contents 492

Comparing Legacy File and NIO.2 Methods 494

Summary 495

Exam Essentials 495

Review Questions 497

Chapter 10 JDBC 505

Introducing Relational Databases and SQL 507

Identifying the Structure of a Relational Database 508

Writing Basic SQL Statements 510

Introducing the Interfaces of JDBC 511

Connecting to a Database 513

Building a JDBC URL 513

Getting a Database Connection 515

Obtaining a Statement 518

Choosing a ResultSet Type 519

Choosing a ResultSet Concurrency Mode 520

Executing a Statement 520

Getting Data from a ResultSet 524

Reading a ResultSet 524

Getting Data for a Column 526

Scrolling ResultSet 529

Closing Database Resources 533

Dealing with Exceptions 535

Summary 536

Exam Essentials 537

Review Questions 539

Appendix A Answers to Review Questions 547

Chapter 1: Advanced Class Design 548

Chapter 2: Design Patterns and Principles 550

Chapter 3: Generics and Collections 553

Chapter 4: Functional Programming 556

Chapter 5: Dates, Strings, and Localization 558

Chapter 6: Exceptions and Assertions 560

Chapter 7: Concurrency 561

Chapter 8: IO 565

Chapter 9: NIO.2 568

Chapter 10: JDBC 571

Appendix B Study Tips 575

Studying for the Test 576

Creating a Study Plan 576

Comparing Previous Exams 578

Creating and Running Sample Applications 579

Taking the Test 582

Understanding the Question 582

Taking Advantage of the Exam Software 587

Using the Provided Writing Material 587

Choosing the Best Answer 590

Optimizing Your Time 591

Getting a Good Night’s Rest 593

Appendix C Upgrading from Java 6 or Earlier 595

Enhancing the Java Language 596

Using the Diamond Operator 596

Creating Literals 597

Making Decisions with Switch 598

Formatting and Parsing 603

Using DecimalFormat Flags 603

Using DateFormat 603

Formatting 604

Parsing 605

Custom Date Formats 606

Applying Locks 607

Understanding the Lock Framework 607

Using a ReentrantLock 610

Understanding Read/Write Locks 614

Using a ReentrantReadWriteLock 615

Working with Directories 617

Traversing Directories 618

Monitoring a Directory for Changes 625

Summary 633

Exam Essentials 633

Review Questions 635

Answers to Practice Test 645

Index 649

Note: Product cover images may vary from those shown
3 of 4

Loading
LOADING...

4 of 4

Jeanne Boyarsky, OCA/OCP 8, has worked as a Java developer for a bank in NYC for 13 years where she develops, mentors and conducts training. In her free time, she is a senior moderator at CodeRanch and works on the forum code base. Scott Selikoff, OCA/OCP 8, has been a professional Java Enterprise developer for over 15 years. He currently operates Selikoff Solutions, LLC, which provides software consulting services to businesses in the tri–state New York City area.

Note: Product cover images may vary from those shown
5 of 4
Note: Product cover images may vary from those shown
Adroll
adroll