0% found this document useful (0 votes)
78 views3 pages

OCP Syllabus: Java Class Design

Uploaded by

kalamkar.adi11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views3 pages

OCP Syllabus: Java Class Design

Uploaded by

kalamkar.adi11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

OCP Syllabus

- Implement encapsulation
- Implement inheritance including visibility modifiers and composition
- Implement polymorphism
Java Class Design - Override hashCode, equals, and toString methods from Object class
- Create and use singleton classes and immutable classes
- Develop code that uses static keyword on initialize blocks, variables,
methods, and classes
- Develop code that uses abstract classes and methods
- Develop code that uses the final keyword
- Create inner classes including static inner class, local class, nested
class, and anonymous inner class
Advanced Java Class
- Use enumerated types including methods, and constructors in an enum
Design
type
- Develop code that declares, implements and/or extends interfaces and
use the @Override annotation.
- Create and use Lambda expressions
- Create and use a generic class
- Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects
- Use java.util.Comparator and java.lang.Comparable interfaces
Generics and - Collections Streams and Filters
Collections - Iterate using forEach methods of Streams and List
- Describe Stream interface and Stream pipeline
- Filter a collection by using lambda expressions
- Use method references with Streams
- Use the built-in interfaces included in the java.util.function package
such as Predicate, Consumer, Function, and Supplier
Lambda Built-in
- Develop code that uses primitive versions of functional interfaces
Functional Interfaces
- Develop code that uses binary versions of functional interfaces
- Develop code that uses the UnaryOperator interface
- Develop code to extract data from an object using peek() and map()
methods including primitive versions of the map() method
- Search for data by using search methods of the Stream classes
including findFirst, findAny, anyMatch, allMatch, noneMatch
- Develop code that uses the Optional class
Java Stream API
- 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 flatMap() methods in the Stream API
- Use try-catch and throw statements
- Use catch, multi-catch, and finally clauses
Exceptions and
- Use Autoclose resources with a try-with-resources statement
Assertions
- Create custom exceptions and Auto-closeable resources
- Test invariants by using assertions
Use Java SE 8 - Create and manage date-based and time-based events including a
Date/Time API combination of date and time into a single object using LocalDate,
LocalTime, LocalDateTime, Instant, Period, and Duration
- 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, and TemporalUnit
- Read and write data from the console
- Use BufferedReader, BufferedWriter, File, FileReader, FileWriter,
Java I/O Fundamentals
FileInputStream, FileOutputStream, ObjectOutputStream,
ObjectInputStream, and PrintWriter in the java.io package.
- Use Path interface to operate on file and directory paths
- Use Files class to check, read, delete, copy, move, manage metadata of
Java File I/O (NIO.2)
a file or directory
- Use Stream API with NIO.2
- Create worker threads using Runnable, Callable and use an
ExecutorService to concurrently execute tasks
- Identify potential threading problems among deadlock, starvation,
livelock, and race conditions
- Use synchronized keyword and java.util.concurrent.atomic package to
Java Concurrency control the order of thread execution
- Use java.util.concurrent collections and classes including CyclicBarrier
and CopyOnWriteArrayList
- Use parallel Fork/Join Framework
- Use parallel Streams including reduction, decomposition, merging
processes, pipelines and performance.
- Describe the interfaces that make up the core of the JDBC API including
the Driver, Connection, Statement, and ResultSet interfaces and their
relationship to provider implementations
Building Database - Identify the components required to connect to a database using the
Applications with JDBC 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
- Read and set the locale by using the Locale object
- Create and read a properties file
Localization
- Build a resource bundle for each locale and load a resource bundle in an
application
Assume the following: - Missing package and import statements: If sample code do not include
package or import statements, and the question does not explicitly refer
to these missing statements, then assume that all sample code is in the
same package, or import statements exist to support them.
- No file or directory path names for classes: If a question does not state
the file names or directory locations of classes, then assume one of the
following, whichever will enable the code to compile and run:

 All classes are in one file


 Each class is contained in a separate file, and all files are in one
directory
- Unintended line breaks: Sample code might have unintended line
breaks. If you see a line of code that looks like it has wrapped, and this
creates a situation where the wrapping is significant (for example, a
quoted String literal has wrapped), assume that the wrapping is an
extension of the same line, and the line does not contain a hard carriage
return that would cause a compilation failure.
- Code fragments: A code fragment is a small section of source code that
is presented without its context. Assume that all necessary supporting
code exists, and that the supporting environment fully supports the
correct compilation and execution of the code shown and its omitted
environment.
- Descriptive comments: Take descriptive comments, such as "setter and
getters go here," at face value. Assume that correct code exists,
compiles, and runs successfully to create the described effect.

You might also like