Mastering Java Programming Techniques and Performance Tuning
(JAV201, Live Instructor-Led Training, 4 days)


This SETC Certified explores Java development from architecture to implementation. This intermediate course covers everything from the internal architecture of the JVM to the performance implications of the various memory allocation techniques. Inheritance, polymorphism, data structures, algorithms and multi-threading are also included. The course concludes with an overview of refactoring techniques and of the use and design of design patterns.

Dates and Pricing

Dec 5 to Dec 8, 2017$2,500/person Jan 30 to Feb 2, 2018$2,500/person Feb 27 to Mar 2, 2018$2,500/person Mar 27 to Mar 30, 2018$2,500/person


Java Architecture
Symptoms and Root Causes of Software Development Problems
Choosing a Methodology
The Rational Unified Process
Symptoms and Root Causes of Software Development Problems
The Application Tiers: 1, 2 and 3-tiered applications
Distributed Applications: Technology and Infrastructure
Web Applications: Technology and Infrastructure.
Packages and Files
Logging with Java
Exception Handling
Performance Implications
Performance Tuning Considerations
JVM Architecture
The Java Runtime: Internal Architecture
Java Internal Architecture
Memory Architecture
Object Allocation
Garbage Collection
Reference Types
Inheritance and Polymorphism
Abstract Functions and Classes
Performance Implications
Data Structures and Algorithms
About Java Collections
Hashtables and Hashmaps
Cached Access
Working with Strings
Java Threading
About Java Threads
Race Conditions
Deadlocks and Synchronization
Thread Pools
Load Balancing
Tools and Utilities
Overview of JDK Tools
Monitoring, Management and Troubleshooting Tools
Summary of Post-Mortem Diagnostic Tools
Summary of Tools for Hung Processes
Eclipse Debugging
Performance Tuning Details
Tuning Compilation in Rational Developer
Tuning the Application Server
Configuring the JVM
Useful Management Tools
Using JStat
Using JConsole
Using HProf
The Java Heap Analysis Tool (JHAT)
Object Query Language (OQL)
Using jdb
Refactoring Applications
The Refactoring Process
Code Smells Overview
Duplicated Code
Long Method
Large Class
Long Parameter List
Divergent Change
Shotgun Surgery
Feature Envy
Data Clumps
Primitive Obsession
Switch Statements
Lazy Class
Speculative Generality
Temporary Field
Message Chains
Middle Man
Alternative Classes with Different Interfaces
Data Classes
Refused Bequest
Design Patterns
Utility Classes
Template Method
Class Factory
Singleton Pattern
Inversion of Control
J2EE Security
Authorization vs Authentication
Adding Groups
Adding Users
Creating Roles
Creating Policies
Implementing Declarative Security
Client Application Security