Why Java is platform independent while the JVM is not, the difference between the JDK, JRE and JVM, the path from source code to machine code, the main method, and which Java versions matter.
Primitive versus reference types, why Java is always pass-by-value, wrapper classes with autoboxing, the Integer cache trap, overflow and floating-point surprises, and var.
Why Java strings are immutable, how the String Constant Pool works, == versus equals, intern, StringBuilder versus StringBuffer, and the string methods interviewers expect you to know.
The four pillars of OOP in Java, overloading versus overriding, why static and private methods are not overridden, fields are not polymorphic, abstract class versus interface, access modifiers and composition.
== versus equals, the equals and hashCode contract, what breaks in HashMap and HashSet when you override only one, records, and the danger of mutable keys.
The collections hierarchy, ArrayList versus LinkedList, Set and Map implementations, how HashMap works internally in Java 8 and later, Comparable versus Comparator, and fail-fast iterators.
Why generics exist, generic methods and bounded types, type erasure and what it prevents, invariance, wildcards, and the PECS rule explained with a working example.
The exception hierarchy, checked versus unchecked exceptions, try, catch and finally including the finally-return trap, final versus finally versus finalize, try-with-resources and suppressed exceptions, and custom exceptions.
What freshers are asked in Java interviews, how to set up a practice project in a minute, a 30-day study plan that covers every step of this collection, and a daily routine that fits 60 to 90 minutes.
Functional interfaces and lambdas versus anonymous classes, method references, how to use Optional correctly, records, sealed classes, and switch expressions with pattern matching, with the Java version each arrived in.
How a stream pipeline works, intermediate versus terminal operations, lazy evaluation, map versus flatMap, grouping with Collectors, why a stream cannot be reused, and when parallel streams hurt.
Creating threads, why start() and run() differ, race conditions and how synchronized, AtomicInteger and volatile fix them, deadlock and lock ordering, BlockingQueue for producer-consumer, and thread states.