1. What is Java? Why is it platform independent?
Answer:
Java is a high-level, object-oriented programming language designed to be platform-independent, meaning you can write code once and run it anywhere.
This is possible because Java code is not executed directly by the OS. Instead:
- Java compiler converts
.java→.class(bytecode) - JVM converts bytecode → machine code
Real Example:
You build a Spring Boot application on Windows and deploy the same .jar file on Linux server without changing code.
Use Case (Interview Tip):
Banks and enterprise systems prefer Java because applications can run on multiple environments (dev, test, prod) without changes.
2. Explain JVM, JRE, and JDK in detail
Answer:
These are core components of Java ecosystem:
- JVM (Java Virtual Machine):
Executes bytecode and provides runtime environment. - JRE (Java Runtime Environment):
Contains JVM + libraries needed to run Java apps. - JDK (Java Development Kit):
Contains JRE + tools like compiler (javac), debugger.
Flow:
.java → javac → .class → JVM → Output
Real Example:
As a developer, you install JDK.
End user only needs JRE to run your application.
Use Case:
In production servers, only JRE is often installed to reduce size and security risks.
3. What are OOP principles with real examples?
Answer:
Java follows 4 main OOP principles:
1. Encapsulation
Binding data + methods together and hiding internal details.
Example:
class BankAccount {
private double balance;
public double getBalance() {
return balance;
}
}
👉 Balance is protected.
2. Inheritance
One class acquires properties of another.
Example:
class Animal {
void eat() {}
}
class Dog extends Animal {
void bark() {}
}
3. Polymorphism
Same method behaves differently.
Example:
void add(int a, int b)
void add(double a, double b)
4. Abstraction
Hide implementation details.
Example:
User clicks “Pay” → doesn’t know backend payment logic.
Use Case:
Used in Spring Boot microservices to design scalable and maintainable systems.
4. What is the difference between == and equals()?
Answer:
==→ compares memory referenceequals()→ compares actual content
Example:
String a = new String("Java");
String b = new String("Java");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true
Real Example:
In login system, password comparison should use .equals() not ==.
Use Case:
Used in collections, validations, authentication systems.
5. What is String immutability and why important?
Answer:
In Java, String is immutable, meaning once created, it cannot be changed.
Example:
String s = "Java";
s.concat(" Tech"); // creates new object
Original string remains unchanged.
Why important:
- Security (used in passwords, URLs)
- Thread safety
- Performance (String pool)
Real Example:
Database connection URLs are immutable → safe from modification.
Use Case:
Widely used in enterprise applications where data integrity matters
6. String vs StringBuilder vs StringBuffer
Answer:
| Feature | String | StringBuilder | StringBuffer |
|---|---|---|---|
| Mutability | Immutable | Mutable | Mutable |
| Thread Safe | Yes | No | Yes |
| Performance | Slow | Fast | Medium |
Example:
StringBuilder sb = new StringBuilder("Java");
sb.append(" Tech");
Real Example:
While generating large logs or reports → use StringBuilder.
Use Case:
Used in high-performance applications like logging systems
7. What is Exception Handling in Java?
Answer:
Exception handling is a mechanism to handle runtime errors and prevent application crash.
Structure:
try {
int a = 10/0;
} catch (Exception e) {
System.out.println("Error handled");
}
Types:
- Checked (IOException)
- Unchecked (NullPointerException)
Real Example:
If payment API fails → catch exception → show user friendly message.
Use Case:
Critical in banking, e-commerce, API systems
8. What is Collection Framework?
Answer:
Collection Framework is a set of classes and interfaces used to store and manipulate data.
Main Interfaces:
- List
- Set
- Map
Real Example:
- List → order history
- Set → unique users
- Map → userId → user data
Use Case:
Used in almost every backend system (microservices, APIs)
9. Difference between ArrayList and LinkedList
Answer:
| Feature | ArrayList | LinkedList |
|---|---|---|
| Structure | Dynamic array | Doubly linked list |
| Access | Fast | Slow |
| Insert/Delete | Slow | Fast |
Real Example:
- ArrayList → fetching user list
- LinkedList → frequent insert/delete operations
Use Case:
Used based on performance requirement
10. What is HashMap? How it works internally?
Answer:
HashMap stores data in key-value pairs.
Internal Working:
- Key → hashCode()
- Hash → bucket index
- Store value in bucket
Example:
Map<Integer, String> map = new HashMap<>();
map.put(1, "Java");
Real Example:
User ID → User details mapping
Use Case:
Used in caching, fast lookup systems
11. Difference between HashMap and ConcurrentHashMap
Answer:
| Feature | HashMap | ConcurrentHashMap |
|---|---|---|
| Thread Safe | No | Yes |
| Performance | Fast | High in multi-thread |
| Locking | No | Segment-based |
Real Example:
Multi-user system → ConcurrentHashMap avoids data corruption
Use Case:
Used in microservices & multi-threaded apps
**If you want a deeper understanding of how HashMap works internally (including hashing, buckets, and collision handling), check out our detailed guide on HashMap vs ConcurrentHashMap. It also covers real-world use cases and interview-focused explanations.
HashMap vs ConcurrentHashMap detailed explanation
12. What is Multithreading?
Answer:
Multithreading allows multiple threads to execute simultaneously.
Example:
Thread t = new Thread(() -> {
System.out.println("Running");
});
t.start();
Real Example:
Download file + update UI at same time
Use Case:
Used in real-time systems, gaming, APIs
13. What is Synchronization?
Answer:
Synchronization ensures only one thread accesses resource at a time.
Example:
synchronized void withdraw() {
// critical section
}
Real Example:
Bank account → avoid double withdrawal
Use Case:
Critical in financial systems
14. What is Garbage Collection?
Answer:
Garbage Collector automatically removes unused objects from memory.
Real Example:
Unused objects in API request → automatically cleared
Use Case:
Improves memory management in large applications
15. What is Dependency Injection?
Answer:
Dependency Injection means providing dependencies from outside rather than creating inside class.
Example (Spring Boot):
@Autowired
UserService userService;
Real Example:
Controller → Service → Repository injected automatically
Use Case:
Core concept in Spring Boot & Microservices
16. What is Method Overloading?
Answer:
Method overloading means defining multiple methods with the same name but different parameters (type, number, or order).
Example:
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
Real Example:
In a payment system:
pay(int amount)pay(int amount, String currency)
Use Case:
Improves readability and flexibility in APIs.
17. What is Method Overriding?
Answer:
Method overriding happens when a child class provides its own implementation of a parent class method.
Example:
class Animal {
void sound() { System.out.println("Animal sound"); }
}
class Dog extends Animal {
void sound() { System.out.println("Bark"); }
}
Real Example:
Different payment methods override a processPayment() method.
Use Case:
Used in runtime polymorphism and frameworks like Spring.
18. What is the final keyword?
Answer:
final is used to restrict modification.
- final variable → cannot change value
- final method → cannot override
- final class → cannot extend
Example:
final int x = 10;
Real Example:
Constant values like PI, MAX_LIMIT
Use Case:
Ensures immutability and security.
19. What is the static keyword?
Answer:
static means the member belongs to the class, not object.
Example:
static int count = 0;
Real Example:
Shared counter across all users
Use Case:
Used in utility methods and memory optimization.
20. What is an Interface?
Answer:
An interface defines a contract (what to do, not how to do).
Example:
interface Payment {
void pay();
}
Real Example:
Multiple classes implement Payment → Card, UPI, NetBanking
Use Case:
Loose coupling in large systems.
21. Abstract Class vs Interface
Answer:
| Feature | Abstract Class | Interface |
|---|---|---|
| Methods | Both abstract + concrete | Mostly abstract |
| Multiple inheritance | No | Yes |
| Use | Partial abstraction | Full abstraction |
Real Example:
Abstract class → common logic
Interface → multiple implementations
Use Case:
Used in Spring Boot architecture
22. What is Lambda Expression?
Answer:
Lambda allows writing functional-style code (Java 8 feature).
Example:
(x, y) -> x + y
Real Example:
Sorting list:
list.sort((a, b) -> a.compareTo(b));
Use Case:
Used in Stream API, collections
23. What is Stream API?
Answer:
Stream API processes collections in a functional way.
Example:
list.stream().filter(x -> x > 10).forEach(System.out::println);
Real Example:
Filtering users above age 18
Use Case:
Used in data processing pipelines.
24. What is Optional?
Answer:
Optional is a container object used to avoid NullPointerException.
Example:
Optional<String> name = Optional.ofNullable(null);
Real Example:
User data may or may not exist
Use Case:
Safer null handling in APIs
25. What is Serialization?
Answer:
Serialization converts object → byte stream.
Example:
implements Serializable
Real Example:
Sending object over network
Use Case:
Used in caching, messaging systems
26. What is Deserialization?
Answer:
Deserialization converts byte stream → object.
Real Example:
Receiving API response → converting to object
Use Case:
Used in REST APIs
27. What is File Handling?
Answer:
File handling is used to read/write files.
Example:
FileReader fr = new FileReader("file.txt");
Real Example:
Reading logs, config files
Use Case:
Used in backend systems
28. What is JDBC?
Answer:
JDBC is API used to connect Java with database.
Steps:
- Load driver
- Create connection
- Execute query
Real Example:
Fetching user data from MySQL
Use Case:
Core for database-driven applications
29. What is Connection Pooling?
Answer:
Reusing database connections instead of creating new every time.
Real Example:
HikariCP in Spring Boot
Use Case:
Improves performance
30. What is Design Pattern?
Answer:
Reusable solution to common problems.
Examples:
- Singleton
- Factory
Use Case:
Improves code quality
31. Singleton Pattern
Answer:
Ensures only one instance exists.
Example:
private static Singleton instance;
Real Example:
Logger instance
Use Case:
Configuration management
32. Factory Pattern
Answer:
Creates objects without exposing creation logic.
Real Example:
PaymentFactory → returns Card/UPI object
Use Case:
Loose coupling
33. What is Dependency Injection?
(Already covered but asked frequently)
Advanced Use Case:
Spring Boot automatically injects dependencies → reduces tight coupling
34. What is REST API?
Answer:
REST API allows communication between systems using HTTP.
Methods:
GET, POST, PUT, DELETE
Real Example:
Frontend calls backend API
Use Case:
Used in all web applications
35. What is Microservices Architecture?
Answer:
Application divided into small independent services.
Real Example:
- User Service
- Payment Service
Use Case:
Scalable systems like Amazon, Netflix
36. Monolithic vs Microservices
Answer:
| Monolithic | Microservices |
|---|---|
| Single app | Multiple services |
| Hard to scale | Easy to scale |
37. What is Docker?
Answer:
Docker is a containerization tool.
Real Example:
Run Spring Boot app in container
Use Case:
Consistent deployment
38. What is CI/CD?
Answer:
Continuous Integration & Deployment pipeline.
Real Example:
Code → Jenkins → Build → Deploy
Use Case:
Faster releases
39. What is API Gateway?
Answer:
Single entry point for all services.
Real Example:
Client → API Gateway → Services
Use Case:
Security + routing
40. What is Load Balancer?
Answer:
Distributes traffic across servers.
Real Example:
100 users → split across servers
Use Case:
High availability
41. What is Deadlock?
Answer:
Two threads waiting forever.
Real Example:
Thread A holds lock1, waits for lock2
Use Case:
Avoid in multi-threading
42. What is Executor Service?
Answer:
Framework for managing threads.
Example:
ExecutorService service = Executors.newFixedThreadPool(5);
Use Case:
Better thread management
43. What is Callable vs Runnable?
Answer:
| Runnable | Callable |
|---|---|
| No return | Returns value |
| No exception | Can throw exception |
44. What is Volatile keyword?
Answer:
Ensures visibility of variable across threads.
Use Case:
Multi-threading
45. What is Transient keyword?
Answer:
Prevents variable from serialization.
46. What is Comparable vs Comparator?
Answer:
- Comparable → default sorting
- Comparator → custom sorting
47. What is Enum?
Answer:
Fixed set of constants.
Example:
enum Day { MON, TUE }
48. What is Reflection?
Answer:
Inspect classes at runtime.
Use Case:
Frameworks like Spring use it
49. What is ClassLoader?
Answer:
Loads classes into JVM.
50. What is Java 8 Features?
Answer:
- Lambda
- Stream API
- Functional Interface
- Optional