Java for Testing
Java for test automation: basics, OOP, keywords, strings, collections, exceptions and programs.
How to Install Java JDK on Windows, Mac and Linux (2026 Guide for Testers)
Install Java JDK 21 on Windows, macOS or Linux, set JAVA_HOME and PATH correctly, verify with java and javac, and fix the errors testers hit most often.
static and final Keywords in Java: Variables, Methods, Blocks and Classes
The static and final keywords in Java: static variables, methods, blocks and nested classes; final variables, references, methods and classes, with examples.
Strings in Java: String Pool, Immutability, StringBuilder and All String Methods
How Java strings work: the string pool, why String is immutable, == vs equals, String vs StringBuilder vs StringBuffer, and every common String method.
Java Queue, Deque and PriorityQueue + Iterators, Collections Utilities and Special Maps
Java Queue, Deque and PriorityQueue with examples, fail-fast vs fail-safe iterators, the Collections utility class and special maps.
Multithreading in Java: Creating Threads, Thread Lifecycle, synchronized and volatile
Multithreading in Java with examples: three ways to create threads, the thread lifecycle, race conditions, synchronized, volatile and AtomicInteger.
Java Concurrency: ExecutorService, CompletableFuture, Fork/Join, Locks and Virtual Threads
Java concurrency beyond raw threads: ExecutorService and thread pools, CompletableFuture, Fork/Join, CountDownLatch, read-write locks.
Java Generics: Generic Classes, Methods, Wildcards and Type Erasure
Java generics with examples: generic classes and methods, bounded types, wildcards (? extends, ? super, PECS) and type erasure, with interview questions.
Java Lambda Expressions, Functional Interfaces, Method References and Optional
Java lambda expressions explained: syntax, functional interfaces (Function, Predicate, Consumer, Supplier), method references, how lambdas work, and Optional.
Java Streams API: filter, map, collect, Collectors and Parallel Streams
Java Streams API with examples: building a pipeline, intermediate and terminal operations, Collectors (groupingBy, joining), primitive streams.
Java Serialization, Reflection API and Custom Annotations
Java serialization and serialVersionUID, the Reflection API for inspecting classes at run time, and writing custom annotations, with interview questions.
Java Enums and Inner Classes: Types, Examples and When to Use Them
Java enums with fields, methods and switch, plus the four kinds of nested classes: inner, static nested, local and anonymous, with practical examples.
Design Patterns in Java (Part 1): Singleton, Decorator, Proxy, Facade, Adapter, Flyweight and Composite
Creational and structural design patterns in Java with code: Singleton and its pitfalls, Decorator, Proxy, Facade, Adapter, State, Flyweight and Composite.
Design Patterns in Java (Part 2): Strategy, Command, Template Method, Chain of Responsibility and More
Behavioral design patterns in Java with code: Strategy, Command, Template Method, Chain of Responsibility, Mediator, Memento, Visitor.
JVM Memory Model, Garbage Collection, JVM Tuning and ClassLoaders
How the JVM manages memory: heap, stack, metaspace, generations, garbage collectors (G1, ZGC, Parallel), JVM tuning flags and the ClassLoader hierarchy.
Java 8 to Java 21 Features: Lambdas, var, Records, Sealed Classes, Pattern Matching and Modules
What changed from Java 8 to Java 21: lambdas and streams, modules, var, text blocks, records, pattern matching, sealed classes.
Mockito Tutorial: Mocks, Stubbing, Verification, Spies and Argument Captors
Mockito tutorial with JUnit 5: @Mock and @InjectMocks, stubbing with when/thenReturn, verify, argument matchers, ArgumentCaptor, spies and common mistakes.
AssertJ Tutorial: Fluent Assertions for Strings, Collections, Objects and Exceptions
AssertJ fluent assertions with examples: strings, numbers, collections, objects, exceptions, soft assertions and custom messages, for JUnit and TestNG.
Java Best Practices: Clean Code, SOLID, Effective Java, Immutability and Anti-Patterns
Java best practices with examples: naming and function design, SOLID, logging, Effective Java rules, immutable objects.
Java Date and Time API (java.time): LocalDate, LocalDateTime, ZonedDateTime, Duration and Formatting
The java.time API with examples: LocalDate, LocalDateTime, ZonedDateTime, Instant, Duration and Period, formatting and parsing, and time zones in tests.
Regular Expressions in Java: Pattern, Matcher, Groups and Common Regex Examples
Regular expressions in Java: Pattern and Matcher, character classes, quantifiers, groups, lookarounds, replaceAll and split.