Java Class Design
- Implement encapsulation
- Implement inheritance including visibility modifiers and composition
- Implement polymorphism
- Override
hashCode
,equals
, andtoString
methods fromObject
class - Create and use singleton classes and immutable classes
- Develop code that uses
static
keyword on initialize blocks, variables, methods, and classes
Advanced Java Class Design
- Develop code that uses abstract classes and methods
- Develop code that uses
final
keyword - Create inner classes including static inner class, local class, nested class, and anonymous inner class
- Use enumerated types including methods, and constructors in an
enum
type - Develop code that declares, implements and/or extends interfaces and use the
@Override
annotation. - Create and use Lambda expressions
Generics and Collections
- Create and use a generic class
- Create and use
ArrayList
,TreeSet
,TreeMap
, andArrayDeque
objects - Use
java.util.Comparator
andjava.lang.Comparable
interfaces - Collections Streams and Filters
- Iterate using
forEach
methods ofStream
andList
- Describe Stream interface and Stream pipeline
- Filter a collection by using lambda expressions
- Use method references with Streams
Lambda Built-in Functional Interfaces
- Use the built-in interfaces included in the
java.util.function
package such asPredicate
,Consumer
,Function
, andSupplier
- Develop code that uses primitive versions of functional interfaces
- Develop code that uses binary versions of functional interfaces
- Develop code that uses the
UnaryOperator
interface
Java Stream API
- Develop code to extract data from an object using
peek()
andmap()
methods including primitive versions of themap()
method - Search for data by using search methods of the
Stream
classes includingfindFirst
,findAny
,anyMatch
,allMatch
,noneMatch
- Develop code that uses the
Optional
class - Develop code that uses
Stream
data methods and calculation methods - Sort a collection using Stream API
- Save results to a collection using the collect method and group/partition data
using the
Collectors
class - Use of
merge()
andflatMap()
methods of the Stream API
Exceptions and Assertions
- Use
try-catch
andthrow
statements - Use catch, multi-catch, and finally clauses
- Use Autoclose resources with a try-with-resources statement
- Create custom exceptions and Auto-closeable resources
- Test invariants by using assertions
Use Java SE 8 Date/Time API
- Create and manage date-based and time-based events including a combination of
date and time into a single object using
LocalDate
,LocalTime
,LocalDateTime
,Instant
,Period
, andDuration
- Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times values
- Define and create and manage date-based and time-based events using
Instant
,Period
,Duration
, andTemporalUnit
Java I/O Fundamentals
- Read and write data from the console
- Use
BufferedReader
,BufferedWriter
,File
,FileReader
,FileWriter
,FileInputStream
,FileOutputStream
,ObjectOutputStream
,ObjectInputStream
, andPrintWriter
in thejava.io
package.
Java File I/O (NIO.2)
- Use
Path
interface to operate on file and directory paths - Use
File
class to check, read, delete, copy, move, manage metadata of a file or directory - Use Stream API with NIO.2
Java Concurrency
- Create worker threads using
Runnable
,Callable
and use anExecutorService
to concurrently execute tasks - Identify potential threading problems among deadlock, starvation, livelock, and race conditions
- Use
synchronized
keyword andjava.util.concurrent.atomic
package to control the order of thread execution - Use
java.util.concurrent
collections and classes includingCyclicBarrier
andCopyOnWriteArrayList
- Use parallel Fork/Join Framework
- Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance.
Building Database Applications with JDBC
- Describe the interfaces that make up the core of the JDBC API including the
Driver
,Connection
,Statement
, andResultSet
interfaces and their relationship to provider implementations - Identify the components required to connect to a database using the
DriverManager
class including the JDBC URL - Submit queries and read results from the database including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections
Localization
- Describe the advantages of localizing an application
- Read and set the locale by using the
Locale
object - Create and read a
Properties
file - Build a resource bundle for each locale and load a resource bundle in an application