Java Internals

Have Queries? Ask us +91 72592 22234

Course Overview


Java Internals

Course Content


Introduction
Multi-Threading

  • Basics of Threads
    • hreading 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 Problem
    • Early Writes
    • Corrupt Data
    • Contention
    • Java Memory Model
    • Hardware impact
    • Deadlocks
  • Applied Threading Techniques
    • Executors
    • Count-down latch
    • Semaphore
    • Blocking queues
    • Atomic Variable
    • Volatile
    • Exceptions
    • Thread local variables
    • Stopping Threads
    • Shutdown hooks
  • Threading Problems
    • Race Conditions
    • Starvation
    • Fairness
    • Deadlock
    • Livelock

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"

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 1.4+ rehashing
    • Compound Keys
    • Map of Maps
    • ConcurrentHashMap
    • Linked Maps
    • Searching
  • Generics
  • Other Structures
    • Multimap
    • Queues
    • Deques
    • Heaps
    • LRU Cache

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
    • JEE components interaction with transaction

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

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

Java Memory

  • Garbage Collection
  • Overview
  • Generational Spaces
  • GC Tasks
  • Heap Fragmentation
  • GC Pros and Cons
  • Algorithms
    • Reachability
    • History
    • JVM 1.4, 5, 6
    • Young Space
    • Old Space
    • Summary
  • Measuring GC Activity
  • Behavior Based Tuning

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?

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

Reflection

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

Invoke Dynamic

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

Customer Reviews


Thanks to Xpertised and the tutor who walked me through all the topics with Practical exposure which is helping me in my current project.
-Waseem

Course was quite helpful in terms of understanding of concepts and practicality. Its really a very friendly environment to learn. The timing were mutually chosen, as we both are working professional. I am quite satisfied with the course.
-Tanmoy

...more
Share:

For Batch Details
Call us at: +91 7259222234

Not sure? Consult Our Experts

Looking for a Training for

Myself

My Team/Organization

I agree to be contacted over mail or phone

or
Call us at: +91 7259222234