A hands-on practice repo for Core Java fundamentals, covering OOP, Multithreading, and Java 8 features β structured using standard Java package conventions (com.java8.*) and runnable directly via javac in the terminal (VSCode-friendly, no build tool required).
./
βββ com/
βββ java8/
βββ MyMain.java # Entry point β swap imports to run different examples
βββ classobject/
β βββ MyClassObject.java # OOP: encapsulation, constructors, toString
βββ multithreading/
βββ MultithreadingUsingSynchronized.java # Odd/even printing using synchronized + wait/notify
From the repo root (wherever you cloned this repo):
# 1. Compile all Java files
javac -d . com/java8/MyMain.java com/java8/classobject/MyClassObject.java com/java8/multithreading/MultithreadingUsingSynchronized.java
# 2. Run the entry point
java com.java8.MyMainTip: The
-d .flag outputs.classfiles into the correct package directory structure automatically.
| Topic | File | Concept |
|---|---|---|
| OOP / Class & Object | classobject/MyClassObject.java |
Encapsulation, constructors, getter/setter, toString() |
| Multithreading | multithreading/MultithreadingUsingSynchronized.java |
synchronized block, wait(), notify(), odd-even thread coordination |
- Language: Java 8+
- Editor: VSCode (lightweight, no IDE overhead)
- Compiler:
javacvia terminal - Version Control: Git + GitHub