Course Overview
Java is the most widely-used language in the world. It is the global language for developing IT software, web based content, games and mobile applications. Java is simple, high performance and most powerful object oriented language.
What will you learn?
The Experienced Java course teaches you to develop applications using Java. During this course, you will learn to:
a) Set up a performance tuning environment
b) Perform Java Applications monitoring
c) Work on Performance tuning
d) Develop applications using the Java programming language
e) Implement interfaces
f) Perform profiling and tuning of Java applications
Why get enrolled in this Course
To Gain knowledge of performance monitoring
To Develop your Java skill set
To Achieve a firm foundation about the JVM
Course Offerings
1. Live/Virtual Training in the presence of online instructors
2. Quick look at Course Details, Contents, and Demo Videos
3. Quality Training Manuals for easy understanding
4. Anytime access to Reference materials
5. Gain your Course Completion Certificate on the Topic
6. Guaranteed high pay jobs after completing certification
Course Benefits
1. Use basic performance tuning principles to a Java application
2. Monitor performance on Solaris, Linux, and Windows at the OS/JVM/Application level
3. Profile the performance of a Java Application
4. Performance tuning of a Java application at the language level
5. Describe various garbage collection schemes
6. Tune garbage collection in a Java application
7. Apply best practices for performance testing
Audience
Architect, Java Developers, Java EE Developers, Support Engineer, Technical Consultant
Prerequisite
1. Knowledge of object-oriented programming techniques
2. Develop applications using the Java programming language
3. Implement interfaces and handle Java programming exceptions
4. Experience in Administering basic Windows, Linux or Solaris systems
Course Content
Lesson 1: Introduction
This lesson introduces you the
a) Course Introduction
b) Course Contents
Lesson 2: Java Virtual Machine
This lesson teaches the fundamentals of Java Virtual machine and performance.
2.1: Overview of JVM
Java Virtual Machine is a specification that provides a runtime environment for executing the Java bytecode. JVM is platform independent.
2.2: Functionalities of JVM
a) Loads Code
b) Verifies Code
c) Executes Code
d) Provides runtime environment
2.3: JVM Architecture
The JVM Architecture supports features for high performance and massive scalability.
2.4: JVM Components
The three JVM components are Heap, JIT compiler, and Garbage Collector
Lesson 3: Performance Overview
The performance tuning of any system is dependent on responsiveness and Throughput. Responsiveness refers how quick a system responds, and Throughput refers to maximizing the amount of work within a particular period.
Lesson 4: Monitoring Operating System Performance
Monitoring Operating system performance depends on the underlying host operating system, the operational database, and messaging infrastructures
4.1: Monitoring CPU Usage: Indicates CPU Utilization
4.2: Monitoring Memory Usage: Indicates physical memory available or in use
4.3: Monitoring Network I/O: Indicates rate of data transfer on the Networks
4.4: Monitoring Disk I/O: Indicates Disk space available or in use
4.5: Monitoring Processes: Indicates resource utilization by process
Lesson 5: JVM Monitoring
This lesson explains you the basic command line options and the key command line options available for use along with the monitoring options listed below
5.1: GC Monitoring Options
5.2: JIT Monitoring Options
5.3: Monitoring with VisualVM
5.4: Monitoring with Mission Control
Lesson 6: Performance Profiling Tools
The performance profiling tools allow increasing the productivity by improving the Java Code.
6.1: Overview of Profiling Tools
6.2: CPU Profiling
6.3: Heap Profiling
Lesson 7: Java Garbage Collection Schemes
7.1: Introduction to Java Garbage Collection
Java Garbage collectors find unwanted objects and remove them. The Java developers do not eliminate the memory in the program code, and the Garbage collectors reduce this unnecessary objects and make the memory free
7.2: Basics of Garbage Collection
Basics of Garbage collection involves the process of understanding about heap memory, identifying used objects and deleting the remaining objects
7.3: The GC Aging Process
This section explains about the different generations is the Garbage collections namely young generation, old generation, and permanent generation
7.4: G1 GC
The G1 Garbage Collector is for multi-processor machines with more memories.
Lesson 8: Java Garbage Collectors Types
This lesson explains the GC algorithms, different Collectors and the usage of Ergonomics
8.1: Garbage Collecting Algorithms
All GC Algorithms work first to find out all the objects that are alive. Once this is complete, then they identify the unwanted or dead objects and remove them.
8.2: Types of GC Collectors
There are three different types of Garbage Collectors
a) Serial Collector
b) Parallel Collector and
c) Concurrent Collector
8.3: JVM Ergonomics
The concept of Ergonomics got introduced to provide excellent performance with no tuning of command line required by selecting options like garbage collector, heap size and runtime collector
Lesson 9: Garbage Collection Tuning
9.1: Tuning with Serial GC
Tuning with Serial GC is achieved using mark-copy for Young generation and mark-sweep-compact for the Old generation. These are single-threaded collectors, incapable of parallelizing the task.
9.2: Tuning with Parallel GC
Parallel Garbage Collector is suitable on multi-core machines in cases where your primary goal is to increase throughput. You can achieve higher performance due to more efficient usage of system resources.
9.3: Tuning with Concurrent GC
Tuning with Concurrent GC is achieved using mark-copy for Young generation and mark-sweep-compact for the Old generation. The design of this collector avoids long pauses while collecting in the Old Generation.
9.4: Tuning with G1 GC
G1 is the most advanced production-ready collector available in HotSpot. It is being improved by the HotSpot Engineers, with new optimizations or features coming in with future Java versions.
Lesson 10: Troubleshooting Performance Issues by Profiling
This lesson details you how to troubleshoot performance issues by Profiling
10.1: Memory Leak Profiling
10.2: Detecting Memory Leaks
10.3: Detecting Contention and Locking Issues
Lesson 11: Language Level Concerns and Garbage Collection
This chapter teaches the methods of allocation and providing references
11.1: Object Allocation
11.2: Working with Large Objects
11.3: Explicit Garbage Collection
11.4: Finalizers
11.5: Memory Leak Detection Tools
11.6: Object References
FAQs
1. What is the primary function of Java Virtual machine?
The Java Virtual Machine does the following:
a) Executes Code and
b) Manages Memory
c) The memory management includes allocating memory from the OS, managing the Java allocation including Heap compaction and removal of garbage objects
2. What are the factors that affect Performance tuning?
Performance tuning is affected by factors specified below
a) Version of the application as executed by the JVM
b) Version of the JDK
c) Server hardware
d) Operating system
e) Load profile (inputs) of the system
f) Dataset of the systems
3. What are the benefits of Ergonomics?
Ergonomics has the following advantages:
a) Provides excellent performance
b) Less or no tuning of command line options
c) Selects garbage collector, heap size and runtime compiler instead of using default selections
Java Course topics to learn
- Java Performance Tuning with Mission Control and Flight Recorder
- Java Fundamentals and Entry Level Programmer
- Develop Rich Client Applications
- Java Performance Tuning and Optimization
- Java SE 8 New Features
- Object Oriented Analysis and Design Using UML
- Java Programmer and Developer Certificate Course
- Java Professional Programmer Certification SE 8
- Java Certification Courses