
This video provides an overview of the entire course.
How parts of a Java application can be executed in parallel using the concept of threads.
• Discuss the thread lifecycle
• Explore about thread priorities
• Learn about the synchronization of threads
Save memory and avoid applications becoming unstable by releasing memory that is no longer allocated.
• Study the memory layout and define garbage
• Understand what is a garbage collector
• Discuss types of garbage collectors and the one preferred by Java 8
Using the new Java Streams API in Java 8 offers a new and improved way to access collections. And you can do the same in parallel with only small changes like adding "parallel" to certain method calls.
• Learn to handle the collections before Java 8
• Execute changes using stream and parallelStream.
• Understand the type of collections better suited for parallel operations and problems that can arise if you access concurrent resources
CompletableFuture is an extension to Java's Future API with greater control over the Future's results and behavior.
• Know what is a CompletableFuture
• Look at the limitations of the existing future
• View the demo of CompletableFuture features
How parts of a Java EE application can be executed in parallel.
• Understand why we need asynchronous execution
• See what options exist in Java EE
• Explore the examples for parallel execution
Why you previously shouldn't create your own threads inside a Java EE container.
• See the anatomy of a Java EE server
• Look at the parallel alternatives in J2EE
• View the examples for those alternatives
Using the concurrency utilities for Java EE for standardized asynchronous execution since Java EE 7.
• Look at the main components of Java EE concurrency utilities
• See how the task creator Demo works
• Look at the live demos including task creator
How CDI events can be fired synchronously and asynchronously from CDI 2 onward.
• Observe CDI events either synchronously or asynchronously
• Explore how CDI 2 can be combined with Java EE concurrency utilities
• Look at the live demos of CDI 2 concurrency
How does Java Caching work in a standard compliant way?
• Look at the main components of JCache
• Understand how does JCache work with Java EE
• Execute the JCache examples
Ehcache is probably the most widely used caching solution for Java.
• Look at the main components of Ehcache
• See the comparison of Java caching frameworks
• Explore the examples for Ehcache 2 and Ehcache 3
Hazelcast is a leading In Memory Data Grid (IMDG) solution for Java which offers distributed caching, too.
• Look at the main components of Hazelcast
• Explore Hazelcast cluster options
• See Hazelcast examples
Coherence is a leading in-memory data grid solution for mission-critical applications. By providing fast access to frequently used data.
• Look at the main components of coherence
• See the coherence example
• Look at the live demo of 3 major JCache implementations
Infinispan is a distributed cache and key-value NoSQL data grid solution developed by Red Hat.
• Look at the main components of Infinispan
• See in depth about the hot rod
• Look at the live demo of Infinispan
What is Javolution?
• See top 10 reasons to use Javolution
• Explore Benchmarks
• See Javolution examples
Trove4J objectives.
• See Trove4J caveats
• Look at the memory comparison
• Explore the Trove4J demos
What are Eclipse collections?
• Overview of Eclipse collections
• Look at the memory comparison
• Explore collections compare
What is DB connection pooling?
• See top 7 JDBC performance recommendations
• Look at some of the examples
• See top 7 JPA performance recommendations
What is a web service and how does it work?
• See top 7 web service performance tips
• Look at some of the examples
• Explore the async JAX-RS demo
CDI performance tips during startup.
• Execute CDI performance tips at runtime
• Look at the CDI performance benchmark demo
What types of scaling exist?
• Understand load balancer
• Learn replicate cluster
• Compare distributed versus replicated
What are common concurrency problems in Java EE?
• See what is a Deadlock as opposed to a livelock
• Learn about the stuck threads
• Explore the examples and demos
What is a memory leak?
• Explore the common reasons for memory leaks
• Compare different OutOfMemoryError forms
• Look at the live demos
Inadequate capacity planning and Java EE environment specifications.
• Understand caching and logging issues
• Lean network and other hardware issues
• View lack of monitoring
What is JConsole?
• Differentiate between local and remote monitoring
• List JConsole tabs
• Enumerate JConsole plugins
What is VisualVM?
• List monitoring technologies and features
• Identify plugins and support for other language
• Look at the live demos
What is Java mission control?
• List license caveats
• Look at the features and plugins
• Look at the live demo
What is Memory Analyzer?
• Look at the features, heap dump and leak suspects
• See when to use MAT
• Look at the live demo
What is spring batch performance monitoring?
• Understand the working part
• Overview of the things to keep in mind
• Look at the demo
What is PCP?
• Learn basics and features
• Understand architecture and data structure
• Look at the live demos
What is Dropwizard metrics?
• Understand the working in detail
• Analyze reporters and other elements
• Look at the demo
What is MicroProfile and what is monitoring?
• Explore elements
• See the health check
• Look at the demo
What is prometheus?
• See features and components
• Learn the architecture
• Look at the live demo
What is graphite?
• Study the graphite components and architecture
• See in depth about Grafana
• Look at the demo
What is JMeter?
• Look at the JMeter features and components
• Run JMeter
• Look at the demo
What is the grinder?
• See the features
• Learn the architecture
• Look at the examples
This video will let you know about the features of Gatlin
• Learn the concepts
• Explore the examples
• Look at the demo
Java EE 8 High Performance aims how to use Java EE for mission- or performance-critical applications. How to monitor the state and performance metrics of your program in a distributed environment. To make use of concurrency and multiple cores provided by modern processor architectures plus the support offered by Java 8. Common pitfalls and How you can scale your application to meet higher demand by adding cluster and load-balancing techniques. As well as optimization tools and frameworks like the Java Cache standard, Eclipse Collections or Javolution.
About the Author
Werner Keil is a Cloud Architect, Java EE, and Microservice expert for a large bank. He has helped Global 500 Enterprises across industries and leading IT vendors.
He worked for 3 decades as IT Manager, PM, Coach, SW architect and consultant for Finance, Mobile, Media, Transport and Public sector. He develops enterprise systems using Java, Java EE/Jakarta EE, other Oracle, IBM or Microsoft technologies, JavaScript, Node, Angular, dynamic or various functional languages.
Werner is Committer at Apache Foundation, Eclipse Foundation, Babel Language Champion, UOMo Project Lead and active member of the Java Community Process in JSRs like 321 (Trusted Java), 331 (CP), 344 (JSF 2.2), 354 (Money), 358/364 (JCP.next), 360/361 (ME Embedded), 362 (Portlet 3), 363 (Unit-API, also Spec Lead), 365 (CDI 2), 366 (Java EE 8), 375 (Java EE Security), 380 (Bean Validation 2), 382 (Config), 385 (Unit-API 2, also Spec Lead) and was the only Self-employed Member of the Executive Committee for 9 years in a row