Corporate Training for Teams
4.8 (70 Reviews)

Java Programming 2 / Java Advanced Developer - Corporate

StayAhead Training, Online (+1 locations)
Length
40 hours
Next course start
In-House training available upon request (+2 start dates)
Course delivery
In Company, Virtual Classroom
Length
40 hours
Next course start
In-House training available upon request (+2 start dates)
Course delivery
In Company, Virtual Classroom
Leave your details so the provider can get in touch

Course description

Java Programming 2 / Java Advanced Developer Course Overview.

Modern Java code extends well beyond object orientation and the associated principles. This hands-on course, delivered using Java 17, 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.

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.

Upcoming start dates

Choose between 2 start dates

In-House training available upon request

  • In Company
  • United Kingdom

Virtual and Hybrid options are available upon request

  • Virtual Classroom
  • Online

Suitability - Who should attend?

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.


Experience to the level as demonstrated in this course is recommended:
  • Java Programming 1 / Java Developer

Training Course Content



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


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.

Reviews

Average rating 4.8

Based on 70 reviews.
Write a review!
5/5
Okoye
21 Nov 2022
amazing

It was amazing as usual.

5/5
Chadley
14 Mar 2022
taught new concepts

Well thought out course. Enjoyed that the requirements/parts for the Exam activity developed as I was taught new concepts. All concepts on the course were explained well as were...

Show more
5/5
Owen
18 Oct 2021
Best lecturer I've ever had

Best lecturer I've ever had. Brilliant paced and brilliantly presented. Hope future training courses have Stuart as a lecturer.

Continuing Studies

Further Learning

  • Developing Applications with Java EE
  • Unit Testing with JUnit
  • Core Spring (4 day)

Request info

Contact course provider

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

  Contact the provider

  Get more information

  Register your interest

Country *

reCAPTCHA logo This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
StayAhead Training
56 Commercial Road
E1 1LP London

Why StayAhead. From a single person on a scheduled course to large scale training projects StayAhead Training have the expertise and experience to help. Established since 1992, StayAhead Training is recognised as one of the leading independent IT Training specialists...

Read more and show all courses with this provider

Ads