Free Online Course · Self-paced
Java Tutorial for Beginners (with examples)
Free, complete Java tutorial for beginners - install JDK, variables, operators, control flow, OOP, collections, streams, lambda, multithreading, file I/O, regex, and exception handling. 80+ tested lessons on Java 17/21 LTS.
- 114 parts
- ~979 min total
- Beginner to Intermediate
- Updated May 2026
Java is the world's most-deployed language - banks, payment systems, Android apps, and most large enterprise backends run on the JVM. This tutorial covers Java the way you will actually use it, with examples tested on Java 17 and Java 21 LTS releases.
We start with installation and IDE setup, then walk through every fundamental (variables, operators, control flow), object-oriented programming (encapsulation, inheritance, polymorphism, generics, interfaces), the Collections framework (List, Map, Set, Queue and the implementation tradeoffs), functional Java (lambdas, Predicates, streams), strings and dates, file I/O, exception handling, multithreading, and a final chapter on classic interview data structures. Every chapter is short and idempotent.
Click Start the course to begin with installation, or jump to the chapter you need - Object-Oriented Programming, Arrays and Collections, and Multithreading are the most-bookmarked.
What you'll learn
- Install Java, set up your IDE, and write your first `main()` method
- Master Java fundamentals - variables, primitives, operators, control flow
- Build classes with encapsulation, inheritance, polymorphism, generics, interfaces
- Use the Collections framework (List, Set, Map, Queue) and pick the right one for each job
- Work with strings, dates, regex, files, and standard I/O
- Apply functional programming with lambda expressions, streams, and Predicate
- Handle exceptions, write multithreaded code, and schedule background work
Prerequisites
- JDK 17 or 21 (LTS) installed
- Any IDE (IntelliJ IDEA Community, VS Code, or Eclipse)
- Basic programming familiarity (variables, loops, functions)
Syllabus
13 chapters · 114 lessons · ~979 min of reading
-
1 Getting Started and IDE Setup 6 lessons
-
2 Variables, Data Types and Operators 17 lessons
- Part 7 Variables and types 10 min read
- Part 8 Primitive and reference data types 11 min read
- Part 9 byte data type 8 min read
- Part 10 Booleans 10 min read
- Part 11 int vs Integer 15 min read
- Part 12 long - MAX_VALUE and MIN_VALUE 4 min read
- Part 13 Declare global variables (static fields) 6 min read
- Part 14 Escape sequences in strings 5 min read
- Part 15 Java operators overview 11 min read
- Part 16 Arithmetic operators 17 min read
- Part 17 Relational operators 6 min read
- Part 18 Logical operators 6 min read
- Part 19 Bitwise operators 6 min read
- Part 20 Unary operators 6 min read
- Part 21 Boolean operators 8 min read
- Part 22 XOR (^) operator 7 min read
- Part 23 Type casting in Java 8 min read
-
3 Control Flow 8 lessons
-
4 Strings, Math and Numbers 15 lessons
- Part 32 String methods overview 10 min read
- Part 33 Concatenate strings 10 min read
- Part 34 String length 8 min read
- Part 35 String indexing 5 min read
- Part 36 indexOf() method 8 min read
- Part 37 Split a string into an array 6 min read
- Part 38 Reverse a string 9 min read
- Part 39 Compare characters 6 min read
- Part 40 Add quotation marks within a string 5 min read
- Part 41 String interpolation 7 min read
- Part 42 Math class methods 11 min read
- Part 43 NumberFormat class 6 min read
- Part 44 DecimalFormat 7 min read
- Part 45 Compute a square 7 min read
- Part 46 Add fractions 4 min read
-
6 Object-Oriented Programming 12 lessons
- Part 53 Constructors 15 min read
- Part 54 Class constructor examples 9 min read
- Part 55 Getters and setters (accessors / mutators) 7 min read
- Part 56 Encapsulation 11 min read
- Part 57 Inheritance 8 min read
- Part 58 Polymorphism 9 min read
- Part 59 private vs protected 9 min read
- Part 60 Interface vs abstract class 6 min read
- Part 61 instanceof 5 min read
- Part 62 Generics in Java 10 min read
- Part 63 Design patterns in Java 18 min read
- Part 64 final vs finally vs finalize 11 min read
-
7 Arrays and Collections 18 lessons
- Part 65 Arrays in Java 10 min read
- Part 66 Return an array from a method 7 min read
- Part 67 Arrays.asList() explained 7 min read
- Part 68 Array vs ArrayList 7 min read
- Part 69 ArrayList vs LinkedList 6 min read
- Part 70 List vs LinkedList 6 min read
- Part 71 Arrays and Collections overview 11 min read
- Part 72 Initialize a list 7 min read
- Part 73 Reverse a list 6 min read
- Part 74 Get a sublist 7 min read
- Part 75 ListIterator 7 min read
- Part 76 Convert a List to a Map 14 min read
- Part 77 Convert a Set to a List 7 min read
- Part 78 Hashtable vs HashMap 6 min read
- Part 79 HashMap vs Hashtable vs HashSet 6 min read
- Part 80 HashSet examples 11 min read
- Part 81 CopyOnWriteArrayList 7 min read
- Part 82 Stack vs Queue 9 min read
-
8 Functional Java (lambda, streams) 2 lessons
-
10 File I/O and User Input 10 lessons
- Part 90 Read a file 8 min read
- Part 91 Create and write to a file 10 min read
- Part 92 Check if a file exists 6 min read
- Part 93 Copy a file 6 min read
- Part 94 Read user input (Scanner) 11 min read
- Part 95 Skip a line in Scanner 6 min read
- Part 96 Mask password input 3 min read
- Part 97 Serialization and deserialization 11 min read
- Part 98 WatchService - watch a directory 7 min read
- Part 99 Hashing methods 8 min read
-
11 Exception Handling 3 lessons
-
13 Data Structures (interview prep) 6 lessons

