Advanced Modern Java

25900 kr

Advanced Modern Java dives deep into complex software constructs and specialized tools used in order to produce modern Java applications.

This course is directed at Java programmers who want to take the next step in their career now embracing the concepts in modern Java, getting a deeper knowledge in modern Java techniques.

Open date Gothenburg: March 25-27, May 27-29 – 2024

Beskrivning

The course kicks off with a full day focusing on Concurrent Programming. This subject stretches from a brief introduction of the basic implementation of low level Threads, lingering over the Executor Framework, with its vast number of concepts, to the enhancements provided by the introduction of lambda expressions and the Streams API in Java.

The second day of the course will cover numerous Design Patterns used heavily in the core Java APIs and of course frequent in complex applications. We will cover main parts of the
classical Design Patterns catalogue, but also introduce some new additions such as DRY, SOLID etc. Some patterns have gained considerably from the introduction of generics and the support of functional programming in modern Java. We will check out these possibilities!

State Machines are gaining more and more interest as digitalization moves on into almost every electronic device in our lives. In Java, state machines can easily be designed following a robust pattern implemented using modern Java technology.

Day three will cover some of the latest additions to the Java programming language. Modules in Java offer a new level of packaging and supports customization of deliverables needed for running an application.

Performance issues will always be important for complex applications. W will have a look at the Java Flight Recorder and Java Mission Control that now are fully available measuring
behavior of your applications.

Both the aforementioned parts are crucial when you set out to build a library. Apart from the pure technical aspects there are some other issues you have to address in order to deliver a library to please your potential clients.

Finally we take a look into the crystal ball, checking up what lies in the near future in the Java evolution, revealing features that will appear in upcoming Java releases.

Hands-On

Every chapter is backed by complete examples that are ready to run. In addition there are a number of exercises that will be addressed and discussed during the course.

Documentation

  • Digital copy of course slides
  • Complete code for all examples/exercises

 

Contents:

1. Threads
 Sequential vs. parallel processing of data
o Utilizing available resources efficiently
o Order of output may differ from order of output
 Introduction to basic Thread programming
o Interface Runnable and class Thread
o synchronized code
o Thread Lifecycle
o Concurrent programming pitfalls
 Case Study – A Storage
o Consumer-Producer using low level Thread interaction

2. Concurrent Collections
 Concurrent Collections in Java
o CopyOnWriteArrayList
o ConcurrentHashMap
o BlockingQueue
o CountDownLatch
 Case Study – A Blocking Storage
o Consumer-Producer using a BlockingQueue

3. Executor Framework
 Executor Framework
o Callable, Future
 Replacing Runnable
o Executors
 SingleThreadExecutor
 FixedThreadPool
 CachedThreadPool
 Asynchronous signaling
o CompletionService

4. Concurrent Streams
 Concurrency in the Streams API
o stream() vs. parallelStream()
o Interface Spliterator
 CompletableFuture
o Supporting Executors using Supplier and Consumer
 Concurrency support for aggregates
o Arrays supporting parallelism
o ConcurrentHashMap improvements

5. Modern Software Patterns
 Object Oriented Development
o Design Patterns – The Catalogue
o MVC – Model View Controller
 General Advice Patterns
o SOLID
o Dependency Injection
o DRY

6. Modern Java Design Patterns
 Modern Java Creational Patterns
o Singleton
o Builder
o Factory Method
 Modern Java Structural Patterns
o Adapter
o Composite
o Case Study – Library using Generic Composite
 Enhanced pattern using Generics
o Decorator
 Modern Java Behavioral Patterns

7. State Machines
 FSM – Finite State Machine
o Supporting fixed number of states
o Separating Context from FSM
o Supporting multiple parallel FSMs
 Implementing FSM using Design Pattern State
o FSM as a shallow inheritance hierarchy
 Abstract top class defines common behavior
 Defining events as Enums
 Derived classes model individual states
 Singleton pattern applied
 Modeling support
o State Table covering all combinations of Events and States
o UML State Diagram, Class Diagram, Object Diagram
 Case Study – Construction Elevator
o Expanding existing FSM with new states/events
 HSM – Hierarchical State Machine
o Defining layers of state machines
o Dependent state machine designed as a pluggable component
 Case study – ATM
o Basic states of the ATM has a connection to dependent FSM
o PINFSM used as an independent component

8. Performance
 General aspects of performance tuning
o Footprint vs. execution speed
 G1 GC – The new default Java Garbage Collector
o Configuration and behavior
 JFR – Java Flight Recorder
o Setting up a JFR session
 JMC – Java Mission Control
o Presenting recordings produced by the JFR

9. Modules
 What are Modules?
o A new packaging level in Java
 Why Modules?
o Packaging limitations in classic Java
o JAR problems
 Modules grammar
o Special keywords reserved for use in module declarations
 module
 open, require, transitive, exports, opens, to uses, provides, with
o Observable modules
 Available for other parts of Java code to use and call
o Internal modules
 Required by module parts but not accessible for other code

10. Building a Library
 Types of libraries
o Broad and Shallow vs. Narrow and Deep
 Library technical design
o Internal Modules
o Observable Modules
 The Library API
o Documentation

11. Java in the Future
 Project Amber
o Small syntax feature enhancements in Java
 Project Valhalla
o Supporting value types in Java
 Project Panama
o Supporting native code calls
 Project Loom
o Introducing Fibers for enhanced concurrency performance

 

Sign up for this course

Ytterligare information

Kurslängd

3 dagar

Lärarledd

Ja

Språk

Svenskt tal, material på engelska

Recensioner

Det finns inga recensioner än.

Endast inloggade kunder som har köpt denna produkt får lämna en recension.

Du kanske också gillar …