Landing your first Java job starts with nailing the basics. Recruiters often grill freshers on Core Java concepts, so mastering these 29 frequently asked questions will give you the confidence—and the vocabulary—to shine in any interview room.
Q1. How do JDK and JRE differ?
The JDK (Java Development Kit) contains tools to write, compile, and debug Java code. In contrast, the JRE (Java Runtime Environment) only provides the libraries and JVM needed to run already compiled Java applications. Simply put, you need the JDK to build; you need the JRE to execute.
Q2. Why is Java platform independent?
Java achieves platform independence through the Java Virtual Machine (JVM). When you compile your source code, the Java compiler produces bytecode—a universal format. Any JVM on Windows, macOS, or Linux then interprets that bytecode, so you write once and run anywhere.
Q3. What is an Access Modifier?
An access modifier controls where classes, methods, and variables can be accessed in your code. It’s your tool to enforce encapsulation and protect internal details.
Q4. Which Access Modifiers does Java offer?
Java provides four levels of access:
private: visible only within the same class
default (no keyword): visible within the same package
protected: visible to the same package and subclasses
public: visible everywhere
Q5. Abstract class vs. Interface: What sets them apart?
An abstract class can hold both concrete methods and fields, and you can extend only one abstract class per class. An interface defines pure method signatures (and constants). Since Java 8, interfaces can also have default and static methods, and you can implement multiple interfaces.
Q6. How does stack memory differ from heap memory?
The stack stores local variables and method calls in a last-in, first-out structure. It’s fast and short-lived. The heap holds all objects and instance data; it’s larger, garbage-collected, and has a longer lifespan.
Q7. Method overloading vs. method overriding?
Overloading: Multiple methods share the same name but differ in parameter lists within the same class.
Overriding: A subclass redefines a parent class method with the same signature, enabling runtime polymorphism.
Q8. Private vs. Protected: What’s the difference?
private members are accessible only within their defining class.
protected members extend that visibility to subclasses (even in different packages) and to other classes in the same package.
Q9. What is constructor overloading in Java?
Constructor overloading lets you create multiple constructors with different parameter lists in a class. Each constructor initializes objects in a distinct way, making object creation flexible.
Q10. Static methods, variables, and classes—how do they differ?
static variables belong to the class, not any instance.
static methods can run without an object reference and can only access other static members.
static nested classes behave like top-level classes but are scoped inside another class.
Q11. Why is main method static?
Declaring public static void main(String[] args) makes Java invoke your program’s entry point without creating an object first. It’s the JVM’s requirement to kick off execution.
Q12. Does Java use a compiler or an interpreter?
Java uses both. The compiler transforms source code into bytecode, while the JVM’s interpreter (and JIT compiler) executes that bytecode at runtime.
Q13. What is a package in Java?
A package groups related classes and interfaces. It helps you organize code, avoid name conflicts, and control access with package-level visibility.
Q14. Why do we need Wrapper classes in collections?
Java collections only handle objects, not primitives. Wrapper classes (e.g., Integer, Double) let you store primitive values in ArrayList, HashMap, and other collections seamlessly.
Q15. What are Control Statements?
Control statements decide the flow of execution:
Selection: if, else if, else, switch
Iteration: for, while, do-while, enhanced for
Transfer: break, continue, return
Q16. Why use else-if over switch if switch is faster?
A switch offers quick lookup for discrete constants (int, enum, String), but it can’t evaluate ranges or complex conditions. Interviewers favor else-if for its flexibility to handle any boolean expression.
Q17. When to use for, while, and do-while loops?
for: When you know the iteration count ahead of time.
while: When the loop should continue until a condition changes.
do-while: When you must execute the loop body at least once before checking the condition.
Q18. What is Type Casting?
Type casting converts one data type to another:
Implicit (widening): int → long
Explicit (narrowing): double → int using a cast operator
Q19. What is a Functional Interface?
A Functional Interface defines exactly one abstract method. They power Java’s lambda expressions and method references (@FunctionalInterface ensures compliance).
Q20. What is the purpose of instanceof?
The instanceof operator checks at runtime whether an object belongs to a particular class or implements a specific interface, preventing ClassCastException.
Q21. Difference between final, finally, and finalize?
final: A keyword to lock variables, methods, or classes from modification.
finally: A block that executes after try/catch, regardless of exceptions.
finalize(): A deprecated method invoked by the garbage collector before reclaiming object memory.
Q22. Which OOP features does Java support?
Java is fully object-oriented, offering:
Abstraction: Hide implementation, expose behavior.
Encapsulation: Bundle data and methods; use access modifiers.
Inheritance: Reuse code via extends.
Polymorphism: Same interface, different implementations (overloading/overriding).
Q23. Java access specifiers revisited
Recall the four access levels: private, package-private (default), protected, and public. Use them wisely to encapsulate and reduce coupling.
Q24. Inheritance vs. Composition
Inheritance (“is-a”): A Car extends Vehicle.
Composition (“has-a”): A Car has an Engine.
Favor composition for flexible designs and to avoid tight coupling.
Q25. What is an abstract class used for?
Use an abstract class to share common code among related classes while forcing subclasses to implement certain methods. It’s the blueprint for a family of classes.
Q26. Constructor vs. Method: What separates them?
Constructor: Initializes new objects, must match the class name, and has no return type.
Method: Defines behavior, always declares a return type (void or otherwise) and can be called repeatedly on an object.
Q27. Explain Java’s diamond problem and its solution
The classic diamond problem arises in multiple inheritance when two parent classes share the same ancestor. Java avoids it by forbidding multiple class inheritance. Instead, it uses interfaces (since Java 8 they can even contain default methods) to simulate multiple inheritance safely.
Q28. Local vs. Instance Variables
Local variables live inside methods or blocks and die when execution leaves their scope.
Instance variables belong to an object, persist as long as that object exists, and default to zero, null, or false if uninitialized.
Q29. What is a Marker Interface?
A marker interface has no methods. Examples include Serializable and Cloneable. They signal to the JVM or frameworks that the class has a certain capability.
Final Tip for Freshers
Don’t just memorize definitions—understand real-world use cases. Share concise code snippets and personal anecdotes to demonstrate how you’ve applied these concepts. That’s the surefire way to turn standard answers into memorable highlights during your interview.
Good luck cracking your Core Java interview! With these expert-backed answers, you’ll be ready to face recruiters confidently.