Why learn Java?
-
Powers a huge share of backend, Android, and enterprise systems.
-
Strong typing and tooling make large codebases manageable.
-
Modern Java (records, sealed classes, virtual threads) is genuinely pleasant.
-
A safe long-term skill — Java jobs are not going anywhere.
What you can build with Java
Enterprise backends with Spring Android apps Big-data tooling (Kafka, Spark, Hadoop) High-throughput JVM services
Java tutorials
30 articles · page 1 of 2Hand-written tutorials, ordered as a recommended learning path.
- 01 Collections A pragmatic tour of Java's collection interfaces and implementations, with guidance on choosing between List, Set, Map, and Queue variants in real applications.
- 02 CompletableFuture How CompletableFuture composes asynchronous work in Java: chaining, combining, error handling, executors, and the patterns that keep concurrent code readable.
- 03 Exceptions Clear rules for using checked and unchecked exceptions in Java, with patterns for wrapping, logging, and propagating errors in real production code.
- 04 Generics Understand Java generics deeply: type parameters, upper and lower bounds, the PECS rule, and why type erasure shapes the rules you have to follow.
- 05 Java JDBC Connect to relational databases from Java using JDBC: drivers, PreparedStatement, transactions, connection pooling, and resource management.
- 06 JPA vs Hibernate Understand the difference between JPA the specification and Hibernate the implementation, and when each abstraction matters in practice.
- 07 JUnit 5 A complete introduction to JUnit 5. Learn the new architecture, lifecycle, parameterized tests, assertions, and patterns that keep your test suite fast and readable.
- 08 Java Lambdas Learn how Java lambda expressions work, when to use them, and how they interact with functional interfaces and the Streams API.
- 09 Maven vs Gradle An honest comparison of Maven and Gradle. Understand their philosophies, performance, ecosystem, and how to choose the right build tool for your Java project.
- 10 Mockito Learn how to use Mockito to write fast, focused unit tests. Understand mocks, stubs, spies, argument captors, and how to avoid over-mocking.
- 11 Multithreading Understand threads, the Java memory model, synchronization, locks, and concurrent collections. A practical guide to writing correct multithreaded Java code.
- 12 Java Optional Use Java's Optional type correctly: when to return it, when to avoid it, and how to chain operations safely without ever calling get().
- 13 Records vs Lombok Records and Lombok both reduce boilerplate, but they solve overlapping problems in very different ways. Here is when to pick which, with concrete tradeoffs.
- 14 Spring Data JPA Learn Spring Data JPA from the ground up. Understand repositories, derived queries, JPQL, pagination, and transaction boundaries in real Java apps.
- 15 Spring Security A practical introduction to Spring Security. Understand the filter chain, configure authentication, set up authorization rules, and avoid common mistakes.
- 16 Collectors Master java.util.stream.Collectors with practical examples covering grouping, partitioning, downstream collectors, and building your own custom collector.
- 17 Java Streams A practical tour of the Java Streams API: how it works, when to use it, lazy evaluation, collectors, parallel streams, and the pitfalls that trip up newcomers.
- 18 Virtual Threads Virtual threads make blocking I/O cheap again. Here is how they work under the hood, when to use them, and what changes in your code, from a practical perspective.
- 19 Spring DI How Spring Boot wires your beans: component scanning, constructor injection, qualifiers, profiles, and the testing strategies that follow from each choice.
- 20 MVC vs WebFlux Compare Spring's two web stacks: thread-per-request Spring MVC versus reactive non-blocking WebFlux, and how to choose between them.