HOME
 

Java Programming 2 / Java Advanced Developer

StayAhead Training
Course summary
Professional Training
5 days
1,795 GBP excl. VAT
Professional Training
Course Dates
Online courses
1,795 GBP
06/06/2022

Online courses
1,795 GBP
11/07/2022

London
1,795 GBP
06/06/2022

London
1,795 GBP
11/07/2022

Course description

S21
.

Modern Java code extends well beyond object orientation and the associated principles. This hands-on course, delivered using Java 11, endeavours to provide a grounding in advanced topics including generics, functional programming, concurrency, annotations, reflection, and security (among others).

This course assumes you are familiar with the fundamentals of the Java language including object oriented principles, and that you can build simple applications. If not, you should consider our Java Programming 1 / Java Developer course instead.

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

Skills Gained

The delegate will learn and acquire skills as follows:

  • Make use of and code generic classes and methods
  • Characterise the various collection types and make use of the standard implementations
  • Correctly implement hashCode and equals, and compareTo/compare
  • Code instance and static, and named and anonymous inner classes
  • Define and code lambda expressions and method references where appropriate
  • Define and characterise functional programming; describe the assoc. challenges in Java
  • Code a stream for the purpose of transforming a collection
  • Make use of custom exceptions and assertions; localise an application
  • Migrate an existing application to a modular one and create services
  • Create and spawn threads safely for the purpose of improving application performance
  • Read from and write to files using classes in both java.io and java.nio packages
  • Define annotations, make use of standard ones and create custom ones
  • Describe the purpose of reflection and write code to extract information about existing code
  • Code objects securely, handle sensitive data properly, and prevent common attacks
Who will the Course Benefit?

The Java Programming 2 / Java Advanced Developer course is aimed at existing Java developers who are seeking to build on their knowledge of the fundamentals so as to make full use of the language's advanced features.

Course Objectives

This course aims to provide the delegate with the skills needed to build and/or maintain Java applications that exploit advanced features. It also serves as good preparation for developers seeking to contribute to enterprise level applications built with Java EE/Jakarta EE/Spring or similar.

Examinations

This Java Programming 2 / Java Advanced Developer course is an excellent choice for delegates preparing to take the following Oracle Java 8 exam:

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

This Java Programming 2 / Java Advanced Developer course together with the Java Programming 1 / Java Developer course is an excellent choice for delegates preparing to take the following Oracle Java 11 exam:

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

Attending these courses and studying the associated reference material 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 be familiar with the fundamentals of the Java language including object oriented principles, and should be able to build simple applications. This knowledge can be obtained by attendance on the pre-requisite Java Programming 1 / Java Developer course.

Pre-Requisite Courses
  • Java Programming 1 / Java Developer
Follow-On Courses
  • Developing Applications with Java EE
  • Unit Testing using JUnit
  • Core Spring
  • Java Web Services
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.
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 1

Course Introduction

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

Session 1: GENERICS

  • Generic types
  • Generic methods
  • Bounded type parameters
  • Generics and inheritance
  • Type inference
  • Wildcards
  • Type erasure
  • Restrictions

Session 2: COLLECTIONS

  • The Collection interface hierarchy
  • Iterable and Iterator
  • Collection operations and traversal
  • The Collections class
  • Collection types (characteristics and implementations) incl. List, Set and Queue
  • The Map interface hierarchy
  • Map operations and traversal
  • Map types (characteristics and implementations)

Session 3: hashCode, equals & compareTo/compare

  • The Object class
  • Overriding toString
  • Equality and membership testing
  • Hashing collections
  • Overriding hashCode and equals
  • The Comparable and Comparator interfaces
  • Searching and sorting
  • Overriding compareTo and compare
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 2

Session 4: NESTED CLASSES

  • Static nested classes
  • Inner classes
  • Shadowing
  • Local classes
  • Anonymous classes
  • Variable capture and effectively final

Session 5: LAMBDA EXPRESSIONS & METHOD REFERENCES

  • What is a lambda expression?
  • Lambda use case: collection filter
  • Lambda syntax
  • What is a method reference?
  • Method reference use case: collection sort
  • Method reference types x 4

Session 6: FUNCTIONAL PROGRAMMING

  • What is functional programming?
  • Functions as first class objects
  • Pure functions
  • Higher order functions
  • Immutable objects
  • Java's functional interfaces
  • Functional composition

Session 7: STREAMS

  • What is a stream?
  • Obtaining/creating a stream
  • Intermediate (non-terminal) operations
  • Terminal operations
  • The Optional class
  • The Collectors class
  • Stream concatenation
  • Primitive streams
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 3

Session 8: EXCEPTIONS, ASSERTIONS & LOCALISATION

  • Exceptions (a review)
  • Custom exceptions
  • Try with resources
  • Assertions
  • Dates and times
  • Internationalisation and localisation
  • Resource bundles

Session 9: MODULAR APPLICATIONS

  • Modules (a review)
  • Module types
  • Analysing dependencies
  • Migrating an existing application
  • Creating a service

Session 10: CONCURRENCY

  • Low-level threading incl. Runnable, sleep, join
  • The Java memory model
  • Threading problems incl. race conditions, deadlock, and starvation
  • Immutable objects and ThreadLocal
  • Thread synchronization incl. volatile, synchronized, atomic data types, and locks
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 4

Session 10 (Continued): CONCURRENCY

  • ExecutorService, thread pools, Callable, and Future
  • Concurrent and immutable collections
  • Parallel streams

Session 11: I/O

  • Files and directories
  • I/O streams
  • Common operations
  • Binary data, character data, and serialisation
  • Console I/O

Session 12: NIO.2

  • What is NIO?
  • Paths
  • Manipulating the filesystem
  • File attributes
  • Listing, traversing, and searching a directory
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 5

Session 13: ANNOTATIONS

  • What is an annotation?
  • Form and application
  • Standard annotations
  • Declaring an annotation

Session 14: REFLECTION

  • What is reflection?
  • Modules, classes, constructors, fields, and methods
  • Private members
  • Annotations
  • Generics and arrays
  • Dynamic proxies
  • Dynamic class loading

Session 15: SECURITY

  • Securing objects
  • Injection and input validation
  • Handling confidential information
  • Serialising and deserialising objects
  • Sensitive objects
  • Preventing denial of service attacks
S21
.

Modern Java code extends well beyond object orientation and the associated principles. This hands-on course, delivered using Java 11, endeavours to provide a grounding in advanced topics including generics, functional programming, concurrency, annotations, reflection, and security (among others).

This course assumes you are familiar with the fundamentals of the Java language including object oriented principles, and that you can build simple applications. If not, you should consider our Java Programming 1 / Java Developer course instead.

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

Skills Gained

The delegate will learn and acquire skills as follows:

  • Make use of and code generic classes and methods
  • Characterise the various collection types and make use of the standard implementations
  • Correctly implement hashCode and equals, and compareTo/compare
  • Code instance and static, and named and anonymous inner classes
  • Define and code lambda expressions and method references where appropriate
  • Define and characterise functional programming; describe the assoc. challenges in Java
  • Code a stream for the purpose of transforming a collection
  • Make use of custom exceptions and assertions; localise an application
  • Migrate an existing application to a modular one and create services
  • Create and spawn threads safely for the purpose of improving application performance
  • Read from and write to files using classes in both java.io and java.nio packages
  • Define annotations, make use of standard ones and create custom ones
  • Describe the purpose of reflection and write code to extract information about existing code
  • Code objects securely, handle sensitive data properly, and prevent common attacks
Who will the Course Benefit?

The Java Programming 2 / Java Advanced Developer course is aimed at existing Java developers who are seeking to build on their knowledge of the fundamentals so as to make full use of the language's advanced features.

Course Objectives

This course aims to provide the delegate with the skills needed to build and/or maintain Java applications that exploit advanced features. It also serves as good preparation for developers seeking to contribute to enterprise level applications built with Java EE/Jakarta EE/Spring or similar.

Examinations

This Java Programming 2 / Java Advanced Developer course is an excellent choice for delegates preparing to take the following Oracle Java 8 exam:

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

This Java Programming 2 / Java Advanced Developer course together with the Java Programming 1 / Java Developer course is an excellent choice for delegates preparing to take the following Oracle Java 11 exam:

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

Attending these courses and studying the associated reference material 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 be familiar with the fundamentals of the Java language including object oriented principles, and should be able to build simple applications. This knowledge can be obtained by attendance on the pre-requisite Java Programming 1 / Java Developer course.

Pre-Requisite Courses
  • Java Programming 1 / Java Developer
Follow-On Courses
  • Developing Applications with Java EE
  • Unit Testing using JUnit
  • Core Spring
  • Java Web Services
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.
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 1

Course Introduction

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

Session 1: GENERICS

  • Generic types
  • Generic methods
  • Bounded type parameters
  • Generics and inheritance
  • Type inference
  • Wildcards
  • Type erasure
  • Restrictions

Session 2: COLLECTIONS

  • The Collection interface hierarchy
  • Iterable and Iterator
  • Collection operations and traversal
  • The Collections class
  • Collection types (characteristics and implementations) incl. List, Set and Queue
  • The Map interface hierarchy
  • Map operations and traversal
  • Map types (characteristics and implementations)

Session 3: hashCode, equals & compareTo/compare

  • The Object class
  • Overriding toString
  • Equality and membership testing
  • Hashing collections
  • Overriding hashCode and equals
  • The Comparable and Comparator interfaces
  • Searching and sorting
  • Overriding compareTo and compare
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 2

Session 4: NESTED CLASSES

  • Static nested classes
  • Inner classes
  • Shadowing
  • Local classes
  • Anonymous classes
  • Variable capture and effectively final

Session 5: LAMBDA EXPRESSIONS & METHOD REFERENCES

  • What is a lambda expression?
  • Lambda use case: collection filter
  • Lambda syntax
  • What is a method reference?
  • Method reference use case: collection sort
  • Method reference types x 4

Session 6: FUNCTIONAL PROGRAMMING

  • What is functional programming?
  • Functions as first class objects
  • Pure functions
  • Higher order functions
  • Immutable objects
  • Java's functional interfaces
  • Functional composition

Session 7: STREAMS

  • What is a stream?
  • Obtaining/creating a stream
  • Intermediate (non-terminal) operations
  • Terminal operations
  • The Optional class
  • The Collectors class
  • Stream concatenation
  • Primitive streams
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 3

Session 8: EXCEPTIONS, ASSERTIONS & LOCALISATION

  • Exceptions (a review)
  • Custom exceptions
  • Try with resources
  • Assertions
  • Dates and times
  • Internationalisation and localisation
  • Resource bundles

Session 9: MODULAR APPLICATIONS

  • Modules (a review)
  • Module types
  • Analysing dependencies
  • Migrating an existing application
  • Creating a service

Session 10: CONCURRENCY

  • Low-level threading incl. Runnable, sleep, join
  • The Java memory model
  • Threading problems incl. race conditions, deadlock, and starvation
  • Immutable objects and ThreadLocal
  • Thread synchronization incl. volatile, synchronized, atomic data types, and locks
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 4

Session 10 (Continued): CONCURRENCY

  • ExecutorService, thread pools, Callable, and Future
  • Concurrent and immutable collections
  • Parallel streams

Session 11: I/O

  • Files and directories
  • I/O streams
  • Common operations
  • Binary data, character data, and serialisation
  • Console I/O

Session 12: NIO.2

  • What is NIO?
  • Paths
  • Manipulating the filesystem
  • File attributes
  • Listing, traversing, and searching a directory
Java Programming 2 / Java Advanced Developer Training Course

Course Contents - DAY 5

Session 13: ANNOTATIONS

  • What is an annotation?
  • Form and application
  • Standard annotations
  • Declaring an annotation

Session 14: REFLECTION

  • What is reflection?
  • Modules, classes, constructors, fields, and methods
  • Private members
  • Annotations
  • Generics and arrays
  • Dynamic proxies
  • Dynamic class loading

Session 15: SECURITY

  • Securing objects
  • Injection and input validation
  • Handling confidential information
  • Serialising and deserialising objects
  • Sensitive objects
  • Preventing denial of service attacks

Expenses

£1,795.00

Continuing Studies

Follow on courses: Developing Applications with Java EE, Unit Testing using JUnit, Core Spring, Java Web Services

Customer Outreach Award

customer-outreach-badge-2019

We believe that it should be easy for you to find and compare training courses. 

Our Customer Outreach Award is presented to trusted providers who are excellent at responding to enquiries, making your search quicker, more efficient and easier, too.

About provider

Live Virtual Training with our live Course Instructor is offered for all our courses.  Take the course from the comfort of your office, home or any location of your choice, nationally and internationally.  Public schedule and Closed Company courses.  Flexibility...


Read more and show all courses with this provider

Request info

Fill out your details to find out more about Java Programming 2 / Java Advanced Developer.

  Contact the provider

  Get more information

  Register your interest

Country *

Contact info

StayAhead Training

6 Long Lane, Barbican
EC1A 9HF London

 Show phone number
www.stayahead.com


Reviews

Average rating 4.8

Based on 57 reviews.

Ting
I really enjoyed learning from Stuart. Since I was the only one in the class, I was given the choice to learn about topics outside of the course outline. The course was delivered at the right pace and that made me feel like the course was tailor-made for me. It has been a fruitful week and I would recommend this course to anyone who has some bac...
Show more
Barbara
It's the most useful experience in my all education process (and I'm saying this after PhD in Physics). All the knowledge served in amazing form with humour. Thank you!
Maggie
The course was really well organised, presented and paced. Stuart has a wealth of knowledge about programming and he was able to answer questions without hesitation, often with examples. Stuart was engaging, helpful and informative, with a good sense of humour (I think he needed it with our group!) The equipment and resources are of a high ...
Show more
Request information

Find out more about this Java Programming 2 / Java Advanced Developer course - simply fill out your details:

Find a course for you!

  Read the course
 summary on this page

 Fill in your details and Request information

 Receive all the info you need

Find more courses here