Resources
Books, Certification Exams, & Preparation
Textbook
Optional: "Java How to Program" 10th Edition by Deitel, Prentice-Hall Inc. (Pearson Education), ISBN: 0133807800, Copyright 2015
The book is available on reserve in the library.
The 11th edition 0134743350 would also be acceptable.
The book has a scratch off code on the back of the cover. This code provides access to VideoNotes and Web Chapters.
10th edition
https://media.pearsoncmg.com/bc/abp/cs-resources/products/product.html#product,isbn=0133813436
11th edition https://media.pearsoncmg.com/ph/esm/deitel/java_htpeo_11/cw/login/sign-in.php?dest=https://media.pearsoncmg.com/ph/esm/deitel/java_htpeo_11/cw/index.php
If you do not have a usable access code you can purchase one for $24 (but you don’t really need to).
You do not need MyProgrammingLab access.
Dive Into® IntelliJ video (17:25)
Errata (mistakes)
Amazon page (rent or buy used)
The textbook code examples can be downloaded at http://www.deitel.com/bookresources/jhtp10/examples.zip
Certification
Oracle Academy Discount voucher codes:
Your membership comes with a certification exam discount: Oracle Academy Institutional faculty members and their students are eligible to receive a 25% discount on select Oracle certification exams. Faculty members must request the discount vouchers/codes and distribute them to their students. Students at Oracle Academy Institutions cannot request for discount vouchers/ codes directly from Oracle Academy.
Schedule to take the exam and redeem your discount: Choose a date and register through Pearson VUE and redeem your Oracle Academy 25% discount code at Pearson VUE payment checkout.
To download instruction guide, click here.
To view a demonstration, click here.
Entry Level
1Z0-819
In Sep. 2020, Oracle combined the 815 and 816 into the 819.
Exam details, topics, and registration
Preparation Materials
OCP Oracle Certified Professional Java SE 11 Developer Complete Study Guide
OCP Oracle Certified Professional Java SE 11 Developer Practice Tests
MOOC
1Z0-819 certification exam topics
Working with Java data types
Use primitives and wrapper classes, including, operators, parentheses, type promotion and casting
Handle text using String and StringBuilder classes
Use local variable type inference, including as lambda parameters
Java Object-Oriented Approach
Declare and instantiate Java objects including nested class objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection)
Define and use fields and methods, including instance, static and overloaded methods
Initialize objects and their members using instance and static initialiser statements and constructors
Understand variable scopes, apply encapsulation and make objects immutable
Create and use subclasses and superclasses, including abstract classes
Utilize polymorphism and casting to call methods, differentiate object type versus reference type
Create and use interfaces, identify functional interfaces, and utilize private, static, and default methods
Create and use enumerations
Working with Arrays and Collections
Use generics, including wildcards
Use a Java array and List, Set, Map and Deque collections, including convenience methods
Sort collections and arrays using Comparator and Comparable interfaces
Java Platform Module System
Deploy and execute modular applications, including automatic modules
Declare, use, and expose modules, including the use of services
Java I/O API
Read and write console and file data using I/O Streams
Implement serialization and deserialization techniques on Java objects
Handle file system objects using java.nio.file API
Database Applications with JDBC
Connect to and perform database SQL operations, process query results using JDBC API
Annotations
Create, apply, and process annotations
Controlling Program Flow
Create and use loops, if/else, and switch statements
Exception Handling
Handle exceptions using try/catch/finally clauses, try-with-resource, and multi-catch statements
Create and use custom exceptions
Working with Streams and Lambda expressions
Implement functional interfaces using lambda expressions, including interfaces from the java.util.function package
Use Java Streams to filter, transform and process data
Perform decomposition and reduction, including grouping and partitioning on sequential and parallel streams
Concurrency
Create worker threads using Runnable and Callable, and manage concurrency using an ExecutorService and java.util.concurrent API
Develop thread-safe code, using different locking mechanisms and java.util.concurrent API
Secure Coding in Java SE Application
Develop code that mitigates security threats such as denial of service, code injection, input validation and ensure data integrity
Secure resource access including filesystems, manage policies and execute privileged code
Localization
Implement Localization using Locale, resource bundles, and Java APIs to parse and format messages, dates, and numbers