Java Academy logo
JavaBeginnerWebMobileLevels A1 → C222 languages

Java Academy

Become proficient in Java programming and develop powerful applications with Java Academy. A CoddyKit learning path of 104 short courses and 374 interactive lessons, with a 24/7 AI tutor at your side.

Courses
104
Lessons
374
Interactive steps
4,355
Free to start
Course 1
Curriculum

104 courses in this path

Every course in the Java Academy path, in learning order. The first one is free.

1

A13 lessonsFree

Java is a high-level, object-oriented programming language introduced in 1995 by Sun Microsystems. Renowned for its "Write Once, Run Anywhere" (WORA) capability, Java compiles code into platform-inde…

2

A14 lessonsPRO

Scanner and Console Input: Reading Input with Scanner, Reading Numbers and Lines, and more.

3

A13 lessonsPRO

Start your Java journey: learn what programming is, how Java runs on the JVM, and what tools you will need next. This mini-course prepares you for installation and your first lines of code.

4

A13 lessonsPRO

Master Java variables and expressions: learn primitive types, declarations, assignment, printing values, and the basics of numeric expressions. Short, mobile-friendly lessons with runnable examples.

5

A24 lessonsPRO

Master Java's type system: primitive vs reference types, widening and narrowing conversions, explicit casting, and the instanceof operator in real-world scenarios.

6

A24 lessonsPRO

Explore the Math class, BigDecimal for financial precision, NumberFormat for locale-aware output, and practical numeric problem solving in Java.

7

A24 lessonsPRO

Switch Expressions and Arrow Syntax: Arrow-Style switch, switch as an Expression, and more.

8

A24 lessonsPRO

Text Blocks and Multiline Strings: Declaring Text Blocks, Indentation and Stripping, and more.

9

A24 lessonsPRO

var and Local Type Inference: Using var for Locals, When var Helps Readability, and more.

10

A24 lessonsPRO

Wrapper Classes and Autoboxing: Primitive vs Wrapper Types, Autoboxing and Unboxing, and more.

11

A24 lessonsPRO

The Arrays Utility Class: Arrays.sort and Sorting, Arrays.binarySearch, and more.

12

A24 lessonsPRO

Java Random and Math Utilities: The Math Class, Generating Random Numbers, and more.

13

A24 lessonsPRO

Read user and file input efficiently in Java.

14

A24 lessonsPRO

Write compact decisions with the conditional operator.

15

A24 lessonsPRO

Work with individual characters using the Character class.

16

A24 lessonsPRO

Produce neatly formatted text with format specifiers.

17

A24 lessonsPRO

Control nested loops with break, continue, and labels.

18

A23 lessonsPRO

Make decisions in Java using if, else if, and else. Build clear boolean expressions with comparison and logical operators. Short, mobile-friendly lessons with runnable examples.

19

A23 lessonsPRO

Dive deeper into comparisons (==, !=, <, >, <=, >=) and boolean logic (&&, ||, !). Learn precedence, grouping with parentheses, short-circuit behavior, and De Morgan's laws.

20

A22 lessonsPRO

Learn while loops step by step: initialization, condition, update, and avoiding infinite loops. Practice small patterns that repeat actions safely. Mobile friendly with short scenes and runnable code.

21

A23 lessonsPRO

Master the for loop: initialization, condition, update in one line. Write counting loops, sums, and simple patterns. Learn break and continue safely.

22

A21 lessonPRO

Java offers us many operators to operate on the data we have. With the help of these operators, we can manipulate the data we have. They are Arithmetic operators, the type of operator we now know mos…

23

A21 lessonPRO

The string data type is used in Java to hold our text data. Strings are reference data types, not primitive in Java. In this course, we will learn to use String in Java language.

24

A23 lessonsPRO

Learn 1D arrays: what they are, how to declare and create them, access and update elements, use length , and iterate with for and enhanced for-each .

25

A26 lessonsPRO

Learn 2D arrays in Java: declare and create them, access rows and columns, and iterate with nested loops. Practice computing row/column sums and formatting output.

26

A23 lessonsPRO

Master the foundations of Java methods: signatures, parameters vs. arguments, calling conventions, and basic design. Short, focused lessons with runnable examples.

27

A23 lessonsPRO

Design and reuse methods effectively: understand Java's pass-by-value semantics, choose between static and instance methods, and decompose problems into clean, testable routines.

28

B14 lessonsPRO

Learn how to define and use enums in Java: enum constants, fields, methods, switch expressions with enums, and the EnumSet/EnumMap collections.

29

B14 lessonsPRO

Discover Java Records (Java 16+): creating immutable data carriers, compact constructors, custom methods on records, and when to use records vs classes.

30

B14 lessonsPRO

StringBuilder and String Performance: Why Strings Are Immutable, Building Strings with StringBuilder, and more.

31

B14 lessonsPRO

BigDecimal and BigInteger: Why Not double for Money, Working with BigDecimal, and more.

32

B14 lessonsPRO

The java.time Date and Time API: LocalDate, LocalTime, LocalDateTime, Instant and Duration, and more.

33

B14 lessonsPRO

Use Optional to eliminate NullPointerExceptions: creating, mapping, filtering, and consuming Optionals idiomatically in Java 17+.

34

B14 lessonsPRO

Go beyond basic strings: StringBuilder, StringJoiner, regular expressions, String.format, text blocks, and common string algorithm patterns.

35

B14 lessonsPRO

Master method overloading resolution, varargs parameters, static fields and methods, and utility class design patterns in Java.

36

B14 lessonsPRO

Explore nested class variants: static nested classes, inner classes, local classes, anonymous classes, and when each variant is appropriate.

37

B14 lessonsPRO

Implement custom Iterable and Iterator interfaces to make your own data structures compatible with for-each loops and the Java Collections framework.

38

B14 lessonsPRO

Sort collections and arrays using Comparable, Comparator, method references, and multi-level sort chains in real-world data scenarios.

39

B14 lessonsPRO

Understand LinkedList internals, doubly-linked structure, Deque operations, stack simulation, and when LinkedList outperforms ArrayList.

40

B14 lessonsPRO

Master sorted collections: TreeMap's NavigableMap operations, TreeSet for unique sorted elements, subMap/headMap/tailMap, and Red-Black tree fundamentals.

41

B14 lessonsPRO

Navigate the modern java.nio.file API: Path creation, Files utility methods, directory walking with walkFileTree, watching directories with WatchService.

42

B14 lessonsPRO

Understand Java serialization: Serializable interface, transient fields, serialVersionUID, custom writeObject/readObject, and modern alternatives like JSON.

43

B14 lessonsPRO

Sealed Classes and Interfaces: Declaring Sealed Types, permits Clause, and more.

44

B14 lessonsPRO

Pattern Matching for instanceof and Records: Pattern Matching for instanceof, Record Patterns, and more.

45

B14 lessonsPRO

Regular Expressions with Pattern and Matcher: Compiling Patterns, Finding and Matching, and more.

46

B14 lessonsPRO

HashMap Internals and equals/hashCode: How HashMap Works, The equals/hashCode Contract, and more.

47

B14 lessonsPRO

EnumMap, EnumSet and Advanced Enums: Enums with Fields and Methods, Abstract Methods in Enums, and more.

48

B14 lessonsPRO

Logging with SLF4J and Logback: Why Structured Logging, SLF4J Facade and Loggers, and more.

49

B11 lessonPRO

Java uses access modifiers to limit the access of objects between each other. This can sometimes be at the class level as well as at the variable, method, or constructor level.

50

B13 lessonsPRO

Build a small word statistics tool: tokenize text, normalize, count, and report top results. Plan first, implement next.

51

B13 lessonsPRO

Learn the basics of classes and objects in Java. Create simple classes, instantiate objects, and understand their role in OOP.

52

B13 lessonsPRO

Everyday OOP practices in Java: this keyword, readable toString, correct equals and hashCode, and practical tips for small apps.

53

B13 lessonsPRO

Learn basic inheritance in Java: extend a base class, call super constructors, and reuse common behavior safely.

54

B13 lessonsPRO

Abstract classes and interfaces in Java: when to use them, how to declare, and how they guide design.

55

B13 lessonsPRO

Design and implement a tiny shape hierarchy with an abstract base, concrete shapes, and polymorphic behaviors.

56

B13 lessonsPRO

Learn Java Lists and Sets: when to use each, basic operations, and simple iteration patterns.

57

B13 lessonsPRO

Learn to use Maps for key→value lookups, frequency counting, and simple algorithms with lists and sets.

58

B13 lessonsPRO

Learn the basics of exception handling: try, catch, and finally blocks with simple examples.

59

B13 lessonsPRO

Apply exception handling with custom exceptions, throw statements, and defensive coding.

60

B13 lessonsPRO

Learn Java NIO Path and Files classes: creating, checking, and deleting files safely.

61

B13 lessonsPRO

Learn Java object serialization: writing objects to files and reading them back.

62

B13 lessonsPRO

Build a simple log analyzer to read, parse, and summarize log files.

63

B14 lessonsPRO

Build Tools: Maven and Gradle: Maven Project Structure, Maven Plugins and Goals, and more.

64

B14 lessonsPRO

JDBC and Connection Pooling: JDBC Fundamentals, PreparedStatement, and more.

65

B24 lessonsPRO

Go beyond basic Streams: groupingBy, partitioningBy, toMap, counting, summarizingInt, joining, and building custom Collectors for complex aggregations.

66

B24 lessonsPRO

Simplify lambda expressions using method references: static, instance, arbitrary-instance, and constructor references with real functional-interface examples.

67

B24 lessonsPRO

Implement the four key creational patterns in Java: Singleton (thread-safe), Factory Method, Abstract Factory, and Builder with fluent APIs.

68

B24 lessonsPRO

Master behavioral design patterns in Java: Observer, Strategy, Command, and Template Method with concrete use cases from real applications.

69

B24 lessonsPRO

Functional Interfaces in Depth: Function and BiFunction, Supplier and Consumer, and more.

70

B24 lessonsPRO

Primitive Streams: IntStream and LongStream, Range and Aggregate Operations, and more.

71

B24 lessonsPRO

Bounded Wildcards and PECS: Upper Bounded Wildcards, Lower Bounded Wildcards, and more.

72

B23 lessonsPRO

Interfaces in practice and the basics of Java generics for safer, reusable code.

73

B24 lessonsPRO

Define custom annotations, retention policies, targets, and process them at runtime with reflection and at compile time with annotation processors.

74

B24 lessonsPRO

Unlock advanced Stream features: flatMap on nested structures, peek for debugging, parallel stream pitfalls, Spliterator internals, and infinite streams.

75

B24 lessonsPRO

Master Spring Boot auto-configuration, application properties, profiles, @Bean, @Component, @Service, @Repository, and constructor injection best practices.

76

B24 lessonsPRO

Map Java entities to database tables with JPA annotations, define Spring Data repositories, write JPQL and native queries, and handle relationships.

77

B24 lessonsPRO

Build robust REST APIs: Bean Validation with @Valid, custom validators, global exception handling with @ControllerAdvice, and RFC 7807 problem details.

78

B24 lessonsPRO

Go beyond basic unit tests: parameterized tests with @MethodSource, @CsvSource, Testcontainers for database integration, and Spring Boot test slices.

79

B24 lessonsPRO

Implement security fundamentals in Java: MessageDigest for hashing, AES encryption, HMAC-SHA256, and JWT creation and verification without external auth libraries.

80

B24 lessonsPRO

The Java Module System (JPMS): module-info.java, requires and exports, and more.

81

B24 lessonsPRO

The Modern HTTP Client: java.net.http.HttpClient, Async Requests, and more.

82

B24 lessonsPRO

GraalVM and Native Image: What Is GraalVM, Building a Native Image, and more.

83

B23 lessonsPRO

Learn Java lambdas and functional interfaces.

84

B23 lessonsPRO

Learn how to use Java Streams to process data with pipelines.

85

B23 lessonsPRO

Get started with Spring Boot: setup project, use starters, and run your first app.

86

B23 lessonsPRO

Learn how to use Spring Data JPA and H2 database with repositories.

87

B23 lessonsPRO

Testing Spring apps with WebTestClient/JUnit, configuration, and packaging.

88

B24 lessonsPRO

Design, implement, and test a REST API with Spring Boot.

89

C14 lessonsPRO

Manage thread life cycles with ExecutorService: fixed, cached, and scheduled thread pools, submitting Callable tasks, and handling Future results.

90

C14 lessonsPRO

Go beyond synchronized: ReentrantLock, ReadWriteLock, StampedLock, AtomicInteger, AtomicReference, and lock-free data structure patterns.

91

C14 lessonsPRO

Parallel Streams and Performance: Creating Parallel Streams, When Parallelism Helps, and more.

92

C14 lessonsPRO

Understand the JVM memory model: heap regions (Young/Old/Metaspace), GC algorithms (G1, ZGC), memory leaks, profiling with JVisualVM, and tuning flags.

93

C14 lessonsPRO

Compose asynchronous computations with CompletableFuture: thenApply, thenCompose, allOf, anyOf, exceptionally, and building non-blocking pipelines.

94

C14 lessonsPRO

Use the Reflection API to inspect and invoke classes at runtime, create dynamic proxies, and understand how frameworks like Spring use reflection under the hood.

95

C14 lessonsPRO

Peek inside the JVM: class loading phases, the bootstrap/extension/application loader hierarchy, bytecode inspection with javap, and JIT compilation basics.

96

C14 lessonsPRO

Virtual Threads (Project Loom): What Are Virtual Threads, Creating Virtual Threads, and more.

97

C14 lessonsPRO

Structured Concurrency: The Structured Concurrency Model, StructuredTaskScope, and more.

98

C14 lessonsPRO

Microbenchmarking with JMH: Why JMH, Writing a Benchmark, and more.

99

C14 lessonsPRO

Java Performance Profiling and Tuning: Identifying Bottlenecks, Java Flight Recorder, and more.

100

C13 lessonsPRO

Learn advanced behaviors of Streams including ordering and short-circuiting.

101

C12 lessonsPRO

Introduction to Java concurrency with Threads, Executors, and synchronization.

102

C13 lessonsPRO

Advanced concurrency: synchronization, locks, atomics, and common issues.

103

C13 lessonsPRO

Build a project that calculates statistics in parallel using streams and concurrency.

104

C24 lessonsPRO

The Foreign Function and Memory API: Why FFM over JNI, MemorySegment and Arena, and more.

CoddyKit PRO

Unlock all 104 courses in this path, and every other path

AI tutor, certification exam and certificate. Works on web, iOS and Android.

See all plans
Yearly$29.90 / yearAbout $2.49 a monthPay onceLifetime$69.99 onceNo renewals. PRO forever.
Course Overview

Java: From First Class to Production-Grade Systems

Java has been the backbone of enterprise software, Android development, and large-scale backend systems for nearly three decades. It runs on the JVM, ships with a rich standard library, and powers everything from financial trading platforms to cloud microservices. This track builds genuine Java competence — starting with variables and control flow, and ending with JVM internals, virtual threads, and native compilation via GraalVM.

What You Will Learn

You will move from core syntax — variables, data types, loops, and methods — through object-oriented design with classes, inheritance, polymorphism, sealed classes, and records. The intermediate stages cover the full Collections framework, the java.time and NIO.2 APIs, lambda expressions, functional interfaces, and the Streams API including collectors, spliterators, and primitive streams. Later courses address Spring Boot configuration and dependency injection, Spring Data JPA, REST API validation, JUnit 5 integration testing, and JWT-based security. The advanced end of the track covers ExecutorService, locks, atomic variables, CompletableFuture, structured concurrency, virtual threads via Project Loom, JVM class loading and bytecode, GraalVM native image compilation, and performance profiling with JMH.

The Learning Path

Over 120 courses span A1 through C2. The A1 and A2 courses establish the fundamentals: the type system, casting, autoboxing, wrapper classes, arrays, conditionals, and methods. B1 covers object-oriented Java in depth — enums, inner classes, iterators, comparators, HashMap internals, exception handling, serialization, and build tools like Maven and Gradle. B2 introduces functional programming, generics with bounded wildcards, custom annotations, and a practical Spring Boot sequence ending in a Mini Project: REST API. The C1 courses are where concurrency and performance take center stage — parallel streams, the Java Memory Model, garbage collection, reflection, dynamic proxies, and structured concurrency. The track closes at C2 with the Foreign Function and Memory API, the lowest-level Java capability for interoperating directly with native code.

How It Works

Each course is split into short, focused lessons you complete in the built-in code editor with real-time feedback. An AI tutor is available whenever you get stuck, and mini projects at key milestones — Word Stats, Shape Hierarchy, Log Analyzer, REST API, and Parallel Stats — let you apply what you have learned before moving forward.

How You'll Learn

  1. 01

    Interactive Lessons

    Hands-on coding exercises with real-time feedback

  2. 02

    AI Tutor

    Get instant help from our AI when you're stuck

  3. 03

    Built-in Editor

    Write and run code directly in your browser

  4. 04

    Certificate

    Earn a certificate when you complete the course

FAQ

Frequently Asked Questions

Is the Java Academy course free?

Yes. You can start the Java Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.

Do I need prior experience to learn Java?

No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior Java experience.

How will I learn Java on CoddyKit?

You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.

Do I get a certificate for completing Java Academy?

Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the Java Academy course.

Can I learn Java on my phone?

Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn Java on any device and your progress syncs across them.

How much does CoddyKit PRO cost?

The first course of Java Academy is free. CoddyKit PRO unlocks every course: $5.90 per week, $7.90 per month, $29.90 per year, or $69.99 once for lifetime access with no renewals.

How long does it take to complete Java Academy?

Java Academy has 104 courses and 374 lessons. Most lessons take about 5–10 minutes, so the whole path is roughly 44 hours of hands-on practice, at your own pace.

Start Java Academy Now

Join thousands of learners mastering programming with AI-powered lessons.