Advanced Java Programming Training Course | Code College


Advanced Java Programming Training Course

  • Learn Advanced Java programming language topics and prepare for the international exam in Java : Part 2 of OCP Java 17 - 1Z0-829 Java Developer
  • The course can be easily adapted for Java 11 - please enquire.



Duration

  • Full-time:
  • 5 Days (08h00-17h00, including an hour breaks) or
  • 10 Half-days(08h00-12h30, including 30 minute breaks)

What do I need?

  • Webinar : A laptop, and a stable internet connection. The recommended minimum speed is around 10 Mbps.
  • Classroom Training : A laptop, please notify us if you are not bringing your own laptop. Please see the calendar below for the schedule

Certification

  • Attendance : If you have attended 80% of the sessions and completed all the class work, you qualify for the Attendance Certificate. (Course Price : R14 500)
  • Competency : Only offered as part of a Coding Bootcamp

Alignment

  • Part 2 of OCP Java 17 - 1Z0-829 Java Developer
  • Exams are not included and has to be written at an international exam center or at home administered by remote proctoring

Delivery

  • Onsite (Woodmead Classroom) or your location (depending on the size of the group
  • Online (Discord Webinar)

Pre-requisites

  • Our Java Beginner Training Course, is required for entry into this course

Who will benefit

  • Developers who already know the fundamentals of Java and wants to learn the rest of Java.
  • Developers who wants to prepare for Oracle certification in Java 17
  • Create Java technology applications with the latest JDK Technology
  • Develop your object-oriented skills
  • Identify good practices in the use of the language to create robust Java application
  • Use Lambda expressions in Java applications
  • Store and manipulate data using collections
  • Manipulate files, directories and file systems
  • Connect to databases using standard SQL queries through JDBC
  • Create high-performance multi-threaded applications
  • This course constitutes the core subject portion of the corresponding module in the Java Bootcamp

Content



Day 1

Collections and Generics

  • Using Common Collection APIs
  • Using the Diamond Operator
  • Adding Data
  • Removing Data
  • Counting Elements
  • Clearing the Collection
  • Check Contents
  • Removing with Conditions
  • Iterating
  • Determining Equality
  • Using the List Interface
  • Comparing List Implementations
  • Creating a List with a Factory
  • Creating a List with a Constructor
  • Working with List Methods
  • Converting from List to an Array
  • Using the Set Interface
  • Comparing Set Implementations
  • Working with Set Methods
  • Using the Queue and Deque Interfaces
  • Comparing Deque Implementations
  • Working with Queue and Deque Methods
  • Using the Map Interface
  • Comparing Map Implementations
  • Working with Map Methods
  • Calling Basic Methods
  • Iterating through a Map
  • Getting Values Safely
  • Replacing Values
  • Putting if Absent
  • Merging Data
  • Comparing Collection Types
  • Sorting Data
  • Creating a Comparable Class
  • Comparing Data with a Comparator
  • Comparing Comparable and Comparator
  • Comparing Multiple Fields
  • Sorting and Searching
  • Sorting a List
  • Working with Generics
  • Creating Generic Classes
  • Understanding Type Erasure
  • Implementing Generic Interfaces
  • Writing Generic Methods
  • Creating a Generic Record
  • Bounding Generic Types

Streams

  • Returning an Optional
  • Creating an Optional
  • Dealing with an Empty Optional
  • Using Streams
  • Understanding the Pipeline Flow
  • Creating Stream Sources
  • Using Common Terminal Operations
  • Using Common Intermediate Operations
  • Putting Together the Pipeline
  • Working with Primitive Streams
  • Creating Primitive Streams
  • Mapping Streams
  • Using Optional with Primitive Streams
  • Summarizing Statistics
  • Working with Advanced Stream Pipeline Concepts
  • Linking Streams to the Underlying Data
  • Chaining Optionals
  • Using a Spliterator
  • Collecting Results

Day 2

Exceptions and Localization

  • Understanding Exceptions
  • The Role of Exceptions
  • Understanding Exception Types
  • Throwing an Exception
  • Calling Methods That Throw Exceptions
  • Overriding Methods with Exceptions
  • Printing an Exception
  • Recognizing Exception Classes
  • RuntimeException Classes
  • Checked Exception Classes
  • Error Classes
  • Handling Exceptions
  • sing try and catch Statements
  • Chaining catch Blocks
  • Applying a Multi- catch Block
  • Adding a finally Block
  • Automating Resource Management
  • Introducing Try- with- Resources
  • Basics of Try- with- Resources
  • Applying Effectively Final
  • Understanding Suppressed Exceptions
  • Formatting Values
  • Formatting Numbers
  • Formatting Dates and Times
  • Customizing the Date/Time Format
  • Supporting Internationalization and Localization
  • Picking a Locale
  • Localizing Numbers
  • Localizing Dates
  • Specifying a Locale Category
  • Loading Properties with Resource Bundles
  • Creating a Resource Bundle
  • Picking a Resource Bundle
  • Selecting Resource Bundle Values
  • Formatting Messages
  • Using the Properties Class

Modules

  • Introducing Modules
  • Exploring a Module
  • Benefits of Modules
  • Creating and Running a Modular Program
  • Creating the Files
  • Compiling Our First Module
  • Running Our First Module
  • Packaging Our First Module
  • Updating Our Example for Multiple Modules
  • Updating the Feeding Module
  • Creating a Care Module
  • Creating the Talks Module
  • Creating the Staff Module
  • Diving into the Module Declaration
  • Exporting a Package
  • Requiring a Module Transitively
  • Opening a Package
  • Creating a Service
  • Declaring the Service Provider Interface
  • Creating a Service Locator
  • Invoking from a Consumer
  • Adding a Service Provider
  • Reviewing Directives and Services
  • Discovering Modules
  • Identifying Built- in Modules
  • Getting Details with java
  • Describing with jar
  • Learning about Dependencies with jdeps
  • Using the -- jdk- internals Flag
  • Using Module Files with jmod
  • Creating Java Runtimes with jlink
  • Reviewing Command- Line Options
  • Comparing Types of Modules
  • Named Modules
  • Automatic Modules
  • Unnamed Modules
  • Reviewing Module Types
  • Migrating an Application
  • Determining the Order
  • Exploring a Bottom- Up Migration Strategy
  • Exploring a Top- Down Migration Strategy
  • Splitting a Big Project into Modules
  • Failing to Compile with a Cyclic Dependency

Day 3

Concurrency

  • Introducing Threads
  • Understanding Thread Concurrency
  • Creating a Thread
  • Distinguishing Thread Types
  • Managing a Thread’s Life Cycle
  • Polling with Sleep
  • Interrupting a Thread
  • Creating Threads with the Concurrency API
  • Introducing the Single- Thread Executor
  • Shutting Down a Thread Executor
  • Submitting Tasks
  • Waiting for Results
  • Scheduling Tasks
  • Increasing Concurrency with Pools
  • Writing Thread- Safe Code
  • Understanding Thread- Safety
  • Accessing Data with volatile
  • Protecting Data with Atomic Classes
  • Improving Access with Synchronized Blocks
  • Synchronizing on Methods
  • Understanding the Lock Framework
  • Orchestrating Tasks with a CyclicBarrier
  • Using Concurrent Collections
  • Understanding Memory Consistency Errors
  • Working with Concurrent Classes
  • Obtaining Synchronized Collections
  • Identifying Threading Problems
  • Understanding Liveness
  • Managing Race Conditions
  • Working with Parallel Streams
  • Creating Parallel Streams
  • Performing a Parallel Decomposition
  • Processing Parallel Reductionsv

Day 4

I/O

  • Referencing Files and Directories
  • Conceptualizing the File System
  • Creating a File or Path
  • Operating on File and Path
  • Using Shared Functionality
  • Handling Methods That Declare IOException
  • Providing NIO.2 Optional Parameters
  • Interacting with NIO.2 Paths
  • Creating, Moving, and Deleting Files and Directories
  • Comparing Files with isSameFile() and mismatch()
  • Introducing I/O Streams
  • Understanding I/O Stream Fundamentals
  • Learning IO Stream Nomenclature
  • Reading and Writing Files
  • Using I/O Streams
  • Enhancing with Files
  • Combining with newBufferedReader() and newBufferedWriter()
  • Reviewing Common Read and Write Methods
  • Serializing Data
  • Applying the Serializable Interface
  • Marking Data transient
  • Ensuring That a Class Is Serializable
  • Storing Data with ObjectOutputStream and ObjectInputStream
  • Understanding the Deserialization Creation Process
  • Interacting with Users
  • Printing Data to the User
  • Reading Input as an I/O Stream
  • Closing System Streams
  • Acquiring Input with Console
  • Working with Advanced APIs
  • Manipulating Input Streams
  • Discovering File Attributes
  • Traversing a Directory Tree
  • Searching a Directory
  • Review of Key APIs

JDBC

  • Introducing Relational Databases and SQL
  • Identifying the Structure of a Relational Database
  • Writing Basic SQL Statements
  • Introducing the Interfaces of JDBC
  • Connecting to a Database
  • Building a JDBC URL
  • Getting a Database Connection
  • Working with a PreparedStatement
  • Obtaining a PreparedStatement
  • Executing a PreparedStatement
  • Working with Parameters
  • Updating Multiple Records
  • Getting Data from a ResultSet
  • Reading a ResultSet
  • Getting Data for a Column
  • Using Bind Variables
  • Calling a CallableStatement
  • Calling a Procedure without Parameters
  • Passing an IN Parameter
  • Returning an OUT Parameter
  • Working with an INOUT Parameter
  • Comparing Callable Statement Parameters
  • Using Additional Options
  • Controlling Data with Transactions
  • Committing and Rolling Back
  • Bookmarking with Savepoints
  • Reviewing Transaction APIs
  • Closing Database Resources

Day 5

Mock Exams

Calendar