Java Programming 2 / Java Advanced Developer

Course Code: JAVA2

Duration: 5 days

 
 

Java Programming 2 / Java Advanced Developer Course Overview.

The Java Programming 2 / Java Advanced Developer course focuses on the core language features and Application Programming Interfaces (APIs) you will use to design effective object-oriented and functional programming applications with the Java Standard Edition 11 Platform.

The delegate will learn how to design and develop robust Java code that is easy to test and maintain and can be integrated into multiple applications.

Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.

Course Objectives

This course aims to provide the delegate with the knowledge to be able to produce robust, scalable, and testable Java code that may be integrated into enterprise applications and that go beyond the core elements of the language exploiting design patterns, functional programming, collections, date and time, input/output, concurrency and JDBC.

Who will the Course Benefit?

The Java Programming 2 / Java Advanced Developer course is aimed at staff and consultants working as part of a Java development team to develop high-quality robust software. Roles include Programmers, Designers, Architects, Testers and anyone who needs a good understanding of the use of the Java language and infrastructure.

Skills Gained

The delegate will learn and acquire skills as follows:

  • Implementing code using inheritance and polymorphism
  • Using design patterns to ensure robust design of classes
  • Overriding key methods of the Object class to provide interoperability with collections and other APIs
  • Understanding and using Generics within existing classes and create new Generic classes
  • Creating and using collections including sets, maps and queues
  • Selecting and incorporating standard functional interfaces in code
  • Using Stream API to generate, filter, process and reduce stream data
  • Writing Lambda expressions for use within code including with functional interfaces
  • Declaring try-with-resources blocks and using AutoCloseable classes
  • Working with Java SE8 Date/Time API classes
  • Reading and writing data from/to the Console
  • Managing files and directories
  • Writing concurrent code and using Concurrent API
  • Using parallel streams
  • Building database applications with JDBC

Java Programming 2 / Java Advanced Developer Training Course

Course Introduction

  • Administration and Course Materials
  • Course Structure and Agenda
  • Delegate and Trainer Introductions

Session 1: JAVA CLASS DESIGN

  • Review of Core Java Class Design Principles
  • The instanceof operator
  • Virtual Method Invocation
  • @Override Annotation
  • Overriding equals, hashCode and toString
  • Enums
  • Nested Classes

Session 2: JAVA DESIGN PATTERNS

  • Designing Interfaces
  • Functional Programming
  • Implementing Polymorphism
  • Java Design Principles
  • Singleton Pattern
  • Immutable Objects
  • Builder Pattern
  • Factory Pattern

Java Programming 2 / Java Advanced Developer Training Course

Session 3: GENERICS AND COLLECTIONS

  • Review of Array and ArrayList and Diamond Operator
  • Generic Classes, Interfaces and Methods
  • Lists, Sets, Maps and Queues
  • Comparable and Comparator
  • Searching and Sorting
  • Method References
  • Conditional Removal of Elements
  • Java Map APIs

Session 4: FUNCTIONAL PROGRAMMING AND STREAM API

  • Using Variables in Lambdas
  • Built-In Functional Interfaces
  • Optional Objects
  • Creating Stream Sources
  • Terminal and Intermediate Operations
  • Constructing a Pipeline
  • Primitive Streams

Java Programming 2 / Java Advanced Developer Training Course

Session 4 (Continued): FUNCTIONAL PROGRAMMING AND STREAM API

  • Functional Interfaces for Primitives
  • Linking Streams to Underlying Data
  • Chaining Optionals
  • Collecting Results

Session 5: DATES, STRINGS AND LOCALISATION

  • Date and Time API Classes
  • Creating Dates and Times
  • Manipulating Dates and Times
  • Periods
  • Durations
  • Daylight Saving Time
  • String Class Functionality
  • Internationalisation and Localisation
  • Locales
  • Resource Bundles
  • Formatting Numbers
  • Formatting Dates and Times

Session 6: EXCEPTIONS AND ASSERTIONS

  • Exceptions Terminology
  • Categories of Exceptions
  • Try Statement
  • Throw Statement
  • Throws Statement
  • Custom Exceptions
  • Multi-Catch Blocks
  • Try-With-Resources
  • AutoCloseable
  • Suppressed Exceptions
  • Rethrowing Exceptions
  • The assert Statement
  • Enabling Assertions

Java Programming 2 / Java Advanced Developer Training Course

Session 7: CONCURRENCY

  • Thread Types and Concurrency
  • Runnable Interface
  • Creating Threads
  • Polling with Sleep
  • Using ExecutorService
  • Thread Pools
  • Synchronising Data Access
  • Atomic Classes
  • Synchronised Blocks and Methods
  • Concurrent Collections
  • Memory Consistency Errors
  • Parallel Streams
  • Processing Parallel Reductions
  • CyclicBarrier Class
  • Fork/Join Framework
  • Threading Problems and Race Conditions

Session 8: IO

  • Conceptualising the File System
  • File Class
  • IO Streams
  • FileInputStream and FileOutputStream

Java Programming 2 / Java Advanced Developer Training Course

Session 8 (Continued): IO

  • FileReader and FileWriter
  • ObjectInputStream and ObjectOutputStream
  • Serialising and Deserialising Objects
  • PrintStream and PrintWriter
  • Console

Session 9: NIO.2

  • Path Class
  • Interacting with Paths and Files
  • File Attributes
  • File Attribute View Classes
  • Directory Walking
  • Legacy File vs. NIO.2 Methods

Session 10: JDBC

  • Relational Databases and SQL
  • JDBC Interfaces
  • Connecting to a Database
  • Statements, ResultSet Types and Concurrency Modes
  • Executing Statements
  • Getting Data from a ResultSet
  • Closing Database Resources
  • Dealing with Exceptions
Notes:
  • Course technical content is subject to change without notice.
  • Course content is structured as sessions, this does not strictly map to course timings. Concepts, content and practicals often span sessions.

Examinations

This Java Advanced Developer course helps to prepare for the following exam:

  • Oracle Certified Professional (OCP) Java SE 8 Programmer II: 1Z0-809

This course together with the Java Programming 1 / Java Developer course helps to prepare for the following exam:

  • Oracle Certified Professional (OCP) Java SE 11 Developer: 1Z0-819

Attending this course will help delegates gain many of the skills and product knowledge requirements as outlined in the exams objectives. Studying these courses and their associated reference materials can form part of the preparation to achieve certification. Experience, practice, self-study and aptitude are also key requirements for exam success.

Before taking any exam, ensure you have the recommended experience. The Oracle website lists all exam requirements and these are updated regularly.

Exams are not included as part of the course.

Requirements

Delegates attending this course should have experience programming with an object-oriented language, ideally Java. This knowledge can be obtained by attendance on the pre-requisite Java Programming 1 / Java Developer course.

Pre-Requisite Courses

Course Reviews

Great course which was explained in a manner which made it simple to follow!

Lewis - April 2021


Stuart explained high level concepts of Java brilliantly and concisely and the practical work was engaging and allowed for practice of what was taught very well.

Edward - Software Engineer - August 2020


Great course thoroughly enjoyed, Stuart remained engaging throughout. Well done

lewis - Software Engineer - August 2020


Sat Java Programming 1 with Stuart as a refresher. This led onto this course Java Programming 2. The course taught me new material which was of great benefit and i would highly recommend Stuart as the lecturer and the material StayAhead offers to other businesses.

Richard - developer - August 2020


I've had Stuart for two Java courses now. Course material is delivered brilliantly in an interesting way with Stuart being excellent to answer further questions people have on the course material. All learning is supplemented with exercises which is great to cement the learning. All in all a brilliant course that was very well taught

Samuel - August 2020


Stuart was super helpful, and nice. Really good course.

Daniel - Software Engineer - Manufacturing


Public Scheduled Events

Classroom & Live Virtual Instructor-Led Training

Duration: 5 days

Price: £1,795.00 exc. VAT 


Start Date Options Spaces  
02 Aug 2021
StayAhead Virtual Courses available 
Filling Book Now 
27 Sep 2021
StayAhead Virtual Courses available 
Spaces Book Now 
25 Oct 2021
StayAhead Virtual Courses available 
Spaces Book Now 
20 Dec 2021
StayAhead Virtual Courses available 
Spaces Book Now 
07 Feb 2022
StayAhead Virtual Courses available 
Spaces Book Now 
21 Mar 2022
StayAhead Virtual Courses available 
Spaces Book Now 
25 Apr 2022
StayAhead Virtual Courses available 
Spaces Book Now 
06 Jun 2022
StayAhead Virtual Courses available 
Spaces Book Now 
18 Jul 2022
StayAhead Virtual Courses available 
Spaces Book Now 


Start Date Options Spaces  
27 Sep 2021
StayAhead Virtual Courses available 
Spaces Book Now  POA
18 Oct 2021
StayAhead Virtual Courses available 
Spaces Book Now  POA
 

Live Virtual Classroom

 
Join live instructor-led classroom training from the comfort of your home or office.
All the convenience and benefits of the classroom experience without the hassle and costs of travel and accommodation.
 
 



Our Customers Include

 
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
missing image
 
 



Our Course Curriculum

 
 
 
 
Facebook LinkedIn Twitter Instagram E-Mail
 
+44 (0)20 7600 6116
Enquiries@StayAhead.com
Copyright © 2021 StayAhead Training Ltd
Cookies   /   Privacy Policy