Call : (+91) 99 8080 3767
Mail : info@EncartaLabs.com
EncartaLabs

Java Internals

( Duration: 4 Days )

COURSE AGENDA

1

Introduction

2

Multi-Threading

  • Basics of Threads
    • Threading Background
      • Threading Models
      • Process vs thread
      • Parallel vs concurrent
    • Creating New
      • Thread Groups
      • States
    • Synchronized
    • Locks
    • Priorities
    • Timers
    • Daemon Threads
  • The Secrets of Concurrency
    • Interrupted Status
    • What threads are doing
    • Limiting number of Threads
    • Visibility Problems
    • Early Writes
    • Corrupt Data
    • Contention
    • Java Memory Model
    • Hardware impact
    • Deadlocks
  • Applied Threading Techniques
    • Executors
    • Count-down latch
    • Semaphore
    • Blocking queues
    • Atomic Variables
    • Volatile
    • Exceptions
    • Thread local variables
    • Stopping Threads
    • Shutdown hooks
  • Threading Problems
    • Race Conditions
    • Starvation
    • Fairness
    • Deadlock
    • Livelock
3

Introduction to Advanced Concurrency

  • Creating and understanding Thread pools
  • Why doesn't Double check lock work?
  • Optimistic memory locks (CAS)
  • True meaning of "final"
  • True meaning of "volatile"
  • True meaning of "synchronized"
4

Data Structures and Introduction to Concurrent Data Structures

  • Basics
    • Introduction
    • Abstract Classes
    • Algorithm Complexity
    • Data Structures & GC
    • Primitive Data Structures
    • Null Elements
    • Type Safetyl
  • Iteration
    • Iterators
    • Efficiency
    • RandomAccess
    • Multithreading
    • ConcurrentModification
    • CopyOnWrite Collections
    • New "for-each" iteration
    • Iterable interface
  • Sorting
    • Collections & Arrays
    • Sorting Performance
    • Comparisons
    • Maps
    • Trees
    • Hashing
      • JDK rehashing
    • Compound Keys
    • Map of Maps
    • ConcurrentHashMap
    • Linked Maps
    • Searching
  • Generics
  • Other Structures
    • Multimap
    • Queues
    • Deques
    • Heaps
    • LRU Cache
5

Java Transaction Internals

  • Introduction
  • ACID
  • Transaction Basics
    • Atomic
    • Consistent
    • Isolated
    • Durable
    • Types of Concurrency
      • Pessimistic
      • Optimistic
    • Resource Local Transaction
    • Distributed Transaction
      • XA
      • 2PC
    • Transaction Logs
    • Heuristics
    • Managed Transactions
    • J2EE components interaction with transaction
6

Java IO

  • IO Internals
    • Understand the class design for Java IO (First major reason why developers feel IO in java is complex)
    • Demystify Charset handling (Second major reason why developers feel IO in java is complex)
    • Use of Streams
    • File Streams
    • Data Streams
    • Network Streams
    • Object Streams
    • Readers and Writers
  • Object Streams and Serialization
    • Object Serialization
    • Simple Object Serialization
    • Serializable Fields
    • readObject() / writeObject()
    • Controlling Serialization
    • Externalizable
    • Serial Object Versioning
    • Compatible Class Changes
    • Incompatible Class Changes
    • Overriding Versioning
    • Circular References
    • Serialization Performance
    • Serialization Pitfalls
    • Resetting Streams
7

Design and Implementation Techniques

  • Static Factories
  • Singletons
  • Duplicate Objects
  • Eliminate Obsolete Object references
  • Finalizers
  • Internals of Clone
  • Minimizing Accessibility
  • Immutability
  • Object Composition
  • Designing for inheritance
  • Serialization as a Security Threat
  • Serialization with inheritance
  • Serialization and immutability
  • Enums
8

Java Memory

  • Garbage Collection
    • Overview
    • Generational Spaces
    • GC Tasks
    • Heap Fragmentation
    • GC Pros and Cons
    • Algorithms
      • Reachability
      • History
      • JVM
      • Participants ng Space
      • Old Space
      • Summary
  • Measuring GC Activity
  • Behavior Based Tuning
9

Class-loading

  • Introduction
  • Class Loading Basics
  • Three Stages of classloading
    • Loading
    • Linking
    • Initialization
  • Isolation
  • Delegation
    • What happens when delegation is not followed
  • Class Visibility Rules
  • Changing the rules of default class visibility
  • Rules for Unloading Classes
  • Why do we need Class Loaders?
10

Advanced Class loading

  • Protecting Package Boundaries
  • Understanding Illegal Access Issues
  • Understanding Class Cast issues
  • Understanding Linkage Error Issues
  • Peer Class Loading
  • Common Class loading Issues
  • Custom Class Loaders
  • Diagnosing and resolving class loading problems
  • Dynamic Reloading of Classes
11

Reflection

  • Downcasting
  • "instanceof" keyword
  • "class" object
  • Using reflection
  • Calling private methods
  • Dynamic proxy
12

Invoke Dynamic

  • First Taste
  • The problem
  • JVM Bytecode
  • The Trick
  • Knowing Bytecode
  • Better mousetrap
  • Anonymous ClassLoader
  • Parametric Explosion
  • Method Handles
  • Invoke Dynamic

Encarta Labs Advantage

  • One Stop Corporate Training Solution Providers for over 6,000 various courses on a variety of subjects
  • All courses are delivered by Industry Veterans
  • Get jumpstarted from newbie to production ready in a matter of few days
  • Trained more than 50,000 Corporate executives across the Globe
  • All our trainings are conducted in workshop mode with more focus on hands-on sessions

View our other course offerings by visiting http://encartalabs.com/course-catalogue-all.php

Contact us for delivering this course as a public/open-house workshop/online training for a group of 10+ candidates.

Top