GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - PramithaMJ/java-masterclass

BranchesTags
Open more actions menu

Latest commit

 

History

31 Commits
31 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
public
public
 
 
src
src
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
eslint.config.js
eslint.config.js
 
 
index.html
index.html
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
tsconfig.app.json
tsconfig.app.json
 
 
tsconfig.json
tsconfig.json
 
 
tsconfig.node.json
tsconfig.node.json
 
 
vite.config.ts
vite.config.ts
 
 

Repository files navigation

Java Engineering Masterclass šŸš€

An interactive, production-grade React application for mastering advanced Java/JVM concepts through visual simulations and deep-dive theory.

React TypeScript Vite License

šŸŽÆ Features

Interactive Simulators

Module Description Visualization
Garbage Collection Eden, Survivor, Old Gen memory pools Object allocation & GC cycles
Concurrency Monitor locks, Entry/Wait sets Thread state transitions
JIT Compilation Tiered compilation (Interpreted → C1 → C2) Profiling & optimization
Java Memory Model CPU caches, Main Memory, Volatile Cache coherence & visibility
Static vs Instance Metaspace vs Heap memory layout Static field sharing

Educational Theory

Each module includes comprehensive "Engineer's Guide" content covering:

  • Under-the-hood JVM internals
  • Best practices and anti-patterns
  • Thread safety considerations
  • Performance implications

šŸ—ļø Architecture

Built following SOLID principles with a modular, scalable architecture:

src/
ā”œā”€ā”€ components/           # Reusable UI components
│   ā”œā”€ā”€ Layout/          # Header, Layout wrapper
│   ā”œā”€ā”€ UI/              # Button, Console, MemoryBlock
│   └── Hub/             # Module selection grid
ā”œā”€ā”€ features/            # Feature modules (one per topic)
│   ā”œā”€ā”€ gc/              # Garbage Collection
│   ā”œā”€ā”€ threads/         # Concurrency
│   ā”œā”€ā”€ jit/             # JIT Compilation
│   ā”œā”€ā”€ jmm/             # Java Memory Model
│   └── static/          # Static vs Instance
ā”œā”€ā”€ hooks/               # Custom React hooks (simulation logic)
ā”œā”€ā”€ contexts/            # React Context providers
ā”œā”€ā”€ types/               # TypeScript type definitions
└── App.tsx              # Root application component

šŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/pramithamj/java-masterclass.git
cd java-masterclass

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:5173 in your browser.

Build for Production

npm run build
npm run preview    # Preview production build locally

🌐 Deployment

GitHub Pages

The app is configured for GitHub Pages deployment:

  1. Build the project: npm run build
  2. Push to your repository
  3. Enable GitHub Pages in repository settings (deploy from gh-pages branch or /docs folder)

Note: The base path in vite.config.ts must match your repository name.

šŸ“š Module Details

Garbage Collection Simulator

Visualize the Generational Hypothesis in action:

  • Eden Space: Where new objects are allocated
  • Survivor Space: Objects that survive Minor GC
  • Old Generation: Long-lived objects (tenured)
  • Trigger Minor GC and Full GC to see object lifecycle

Concurrency Simulator

Understand Java's Monitor Lock mechanism:

  • See threads competing for synchronized blocks
  • Watch Entry Set (blocked) and Running states
  • Visualize lock acquisition and release

JIT Compilation Simulator

Watch code get "hot" and tiered compilation kick in:

  • Interpreted: Initial slow execution
  • C1 Compiler: Quick compilation, basic optimizations
  • C2 Compiler: Aggressive optimization (inlining, escape analysis)

Java Memory Model Lab

Understand visibility and happens-before:

  • CPU L1 caches vs Main Memory
  • Volatile writes flush to memory
  • Non-volatile reads may see stale data

Static vs Instance Lab

Visualize where static and instance members live:

  • Metaspace: Class-level static fields (shared)
  • Heap: Per-instance fields (unique per object)
  • See how static changes affect ALL instances

šŸ› ļø Technology Stack

  • React 19 - UI framework with hooks
  • TypeScript 5.9 - Type safety
  • Vite 7 - Fast build tool with HMR
  • CSS Modules - Scoped styling
  • ESLint - Code quality

šŸ“ Design Principles

  1. Single Responsibility (SRP): Each component/hook has one clear purpose
  2. Open/Closed (OCP): Easy to add new modules without modifying core
  3. Dependency Inversion (DIP): Contexts provide injectable dependencies
  4. Interface Segregation (ISP): Small, focused type interfaces

šŸ¤ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

šŸ™ Acknowledgments

  • Inspired by the need for better JVM education tools
  • Built with modern React best practices
  • Designed for developers learning advanced Java concepts

About

pramithamj.github.io/java-masterclass/

Topics

javajava-advancedjava-internal-workjava-masterclass

Resources

Readme
MIT license
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Ɨ600. No cookies required.