Course
Java - Core
Complete Java foundation from syntax and JVM concepts to OOP, collections, streams, multithreading, testing, and production-ready habits.
Start coursebasic to advanced / 123 lessons
Log in to track your progress through this course.
About this course
Who it is for
This course is for complete beginners who want to learn Java properly, students preparing for exams and placement interviews, and developers moving to Java from another language. You need no programming experience, only a computer where you can install a JDK. The lessons use Java 17.
What it covers
It starts with how Java code is compiled and run on the JVM, then works through variables, operators, control flow, arrays and strings. The largest part of the course is object-oriented programming: classes, constructors, inheritance, polymorphism, abstraction, interfaces and encapsulation. After that come exception handling, multithreading, memory management, the Collections Framework, Java 8 features such as lambdas and streams, file I/O, and short modules on networking, reflection and classic algorithms.
How to use it
Every lesson explains one topic with runnable examples and their real output, then lists common mistakes and ends with an exercise, a short quiz and interview questions. Follow the milestones in order if you are new, or search the roadmap below for a single topic. When you finish, continue with Advanced Java or Spring Boot.
Course roadmap
Your Java - Core journey
- Milestones
- 11
- Topics
- 123
Milestone 1Java Basics14 topics
- History and Features of JavaUp next
- Setting Up the Java Development Environment
- C++ vs Java: Key Differences
- JVM, JDK, and JRE
- Java Program Structure and First Program
- Java Variables
- Identifiers in Java
- Java Data Types
- Unicode System in Java
- Type Casting and Type Promotion
- Java Operators
- Java Keywords
- Java Comments
- Command Line Arguments
Milestone 3Strings and Regex10 topics
Milestone 4Object-Oriented Programming32 topics
- OOPs Concepts in Java
- Classes and Objects
- Java Naming Conventions
- Java Methods and Method Overloading
- Call By Value in Java
- Constructors and Constructor Overloading
- Static Keyword
- this Keyword
- Java Inheritance
- Aggregation in Java
- super Keyword
- Polymorphism in Java: An Overview
- Method Overriding
- Runtime Polymorphism and Dynamic Binding
- Instance Initializer Block
- Abstraction and Abstract Classes
- Interfaces in Java
- Abstract Class vs Interface
- Encapsulation
- Packages and Access Modifiers
- Java final Keyword
- Object Class and Its Methods
- Object Cloning
- Wrapper Classes
- Java Math Class and Utility Methods
- strictfp Keyword in Java
- Java Varargs
- Static Import
- instanceof and Downcasting
- Nested and Inner Classes
- Nested Interfaces in Java
- Method Overloading vs Method Overriding: A Comparison
Milestone 6Multithreading12 topics
- Multithreading Basics and Thread Life Cycle
- Creating Threads: Thread Class vs Runnable
- Thread Priority and sleep()
- Daemon Threads, Thread Naming, and start() vs run()
- Thread Scheduler, ThreadGroup, and Shutdown Hooks in Java
- Multitasking vs Multithreading in Java
- Synchronization
- Advanced Synchronization: Reentrant Locks and Interrupting Threads
- Inter-thread Communication: wait, notify, notifyAll
- Deadlock
- Thread Pool and the Executor Framework
- Callable, Future, and CompletableFuture
Milestone 7Memory Management and Special Keywords4 topics
Milestone 8Collections Framework12 topics
- Collections Framework Overview
- List Interface: ArrayList, LinkedList, Vector
- Set Interface: HashSet, LinkedHashSet, TreeSet
- Map Interface: HashMap, LinkedHashMap, TreeMap, Hashtable
- How HashMap Works Internally
- Queue and Deque: PriorityQueue, ArrayDeque
- Iterator and ListIterator
- Comparable vs Comparator
- Generics in Java
- Collections Utility Methods and Fail-Fast vs Fail-Safe Iterators
- Concurrent Collections: ConcurrentHashMap and CopyOnWriteArrayList
- EnumMap, EnumSet, Properties Class, and How HashSet Works Internally
Milestone 9Java 8+ and I/O14 topics
- Lambda Expressions
- Functional Interfaces
- Stream API
- Method References
- Optional Class
- Date and Time API
- Java I/O Streams Fundamentals
- Scanner and Reading User Input
- Java Byte Stream Classes: FileInputStream, FileOutputStream, BufferedStream, ByteArrayStream, DataStream, ObjectStream, and PrintStream
- Java Character Stream Classes: FileReader/Writer, BufferedReader/Writer, CharArrayReader/Writer, StringReader/Writer, and PrintWriter
- File Handling: File, FileReader, FileWriter, BufferedReader
- Advanced File Handling: RandomAccessFile, the Path API (NIO.2), and Zip Files
- Serialization
- Modern Java Features: var, Records, Sealed Classes, Pattern Matching, and Text Blocks
Milestone 10Networking, Reflection, and Platform Tools3 topics
Milestone 11Algorithms and Internationalization3 topics