java interview questions for freshers

Java Interview Questions for Freshers (2026 Guide + Answers)

20 August 20269 min read

Java Interview Questions for Freshers — Sahi Jawab Ke Saath

Agar aap fresher hain aur Java ka interview aane wala hai, to ek baat pehle samajh lijiye: aapse kuch bhi "advanced" nahi poochha jaayega. Fresher ke technical round mein interviewer sirf ye dekhta hai ki basics par aapki pakad kitni saaf hai, aur code padh kar aap bata sakte hain ya nahi ki output kya aayega.

Isi guide mein wahi cheezein hain. Aur ek baat — is page ka har code snippet actually chalaaya gaya hai (Java 17), output copy karke likha gaya hai. Java ke kai blogs mein output theek nahi hota, khaas kar niche wale ConcurrentModificationException wale sawaal mein. Wahan aapko wo milega jo sach mein hota hai, wo nahi jo log maan lete hain.

Interview ke sawaal teen hisson mein baant lijiye — yahi teen hisse hain jahan se sabse zyada poochha jaata hai:

  1. Core Java — String, memory, static, exceptions
  2. OOPs — encapsulation, inheritance, polymorphism, abstraction
  3. Collections & Generics — List, Map, Set aur unke andar ka kaam

Hissa 1 — Core Java

1. String immutable hai — iska matlab kya hai?

String ek baar ban gaya to badal nahi sakta. Jo bhi "badlav" aap karte hain, wo naya object banata hai. Isiliye ye sawaal aksar code ke saath aata hai:

String s = "Java";
s.concat(" Rocks");
System.out.println(s);           // Java
System.out.println(s.concat(" Rocks")); // Java Rocks

Pehli line ka nateeja kahin store nahi hua, isiliye s waisa hi raha. Ye chhoti si baat interview mein bahut poochhi jaati hai.

2. == aur .equals() mein farq

== reference compare karta hai (dono ek hi object hain kya), .equals() value compare karta hai.

String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");

s1 == s2          // true
s1 == s3          // false
s1.equals(s3)     // true
s3.intern() == s1 // true

s1 == s2 isliye true hai kyunki dono literal hain aur String pool mein ek hi object share karte hain. new String() hamesha heap mein alag object banata hai — isiliye false. Aur intern() us object ko wapas pool wale se jod deta hai.

3. Integer cache — ye wala pakka poochha jaata hai

Integer a = 127, b = 127;
Integer c = 128, d = 128;

a == b   // true
c == d   // false

Java -128 se 127 tak ke Integer objects cache karke rakhta hai. Us range ke andar dono variable ek hi object par point karte hain, isiliye true. 128 range se bahar hai, alag object bante hain, isiliye false.

Seekh: wrapper objects ko kabhi == se compare mat kijiye, hamesha .equals().

4. finally mein return likh diya to kya hota hai?

static int test() {
    try { return 1; }
    finally { return 2; }
}
// test() => 2

finally ka return try wale ko dabaa deta hai. Isiliye real code mein finally ke andar return likhna bura maana jaata hai — exception tak chup-chaap gayab ho jaata hai.

5. i++ + ++i ka output

int i = 5;
int r = i++ + ++i;
// r => 12,  i => 7

Todiye aise: i++ pehle 5 deta hai phir i ko 6 karta hai. ++i pehle i ko 7 karta hai phir 7 deta hai. To 5 + 7 = 12, aur i reh gaya 7.

6. 0.1 + 0.2 barabar 0.3 hai?

0.1 + 0.2           // 0.30000000000000004
(0.1 + 0.2) == 0.3  // false

double binary floating point hai, isme kuch decimal exactly store nahi hote. Paise ka hisaab kabhi double mein mat rakhiye — BigDecimal use kijiye. Ye follow-up sawaal bahut aata hai.

7. Static block kab chalta hai?

class Order {
    static { System.out.print("static1 "); }
    { System.out.print("instance "); }
    Order() { System.out.print("ctor "); }
    static { System.out.print("static2 "); }
}
new Order(); new Order();
// static1 static2 instance ctor instance ctor

Static block class load hone par sirf ek baar chalta hai, likhne ke kram mein. Instance block aur constructor har object par chalte hain, aur instance block constructor se pehle.


Hissa 2 — OOPs

Ye section sabse zyada rata hua hota hai, isiliye interviewer definition ke baad hamesha "example dijiye" poochhta hai. Definition ke saath ek line ka example taiyaar rakhiye.

8. Chaar pillars, ek-ek line mein

  • Encapsulation — data ko private rakhna aur getter/setter se access dena. Fayda: badlav ek jagah rukta hai.
  • Inheritanceextends se parent ka behaviour lena. Fayda: code dobara nahi likhna padta.
  • Polymorphism — ek hi naam, alag-alag behaviour. Do tarah ka: overloading aur overriding.
  • Abstraction — kya hota hai wo dikhana, kaise hota hai wo chhupana. abstract class ya interface se.

9. Overloading aur overriding ka farq

Overloading Overriding
Kahan Ek hi class mein Parent–child class mein
Kya badalta hai Parameters Method ka body
Kab tay hota hai Compile time Runtime

Follow-up jo aksar aata hai: "kya sirf return type badal kar overload kar sakte hain?"Nahi. Parameters badalne zaroori hain, warna compile error.

10. abstract class ya interface — kab kya?

abstract class tab jab classes "is-a" rishte mein hon aur kuch common code share karna ho. interface tab jab sirf contract dena ho ki kya-kya kar sakna chahiye — aur ek class kai interface implement kar sakti hai, jabki extend sirf ek class ko kar sakti hai.

Java 8 ke baad interface mein default aur static methods bhi aa sakte hain, is wajah se dono ka farq kam ho gaya hai — ye baat batayenge to accha impression padta hai.

11. Constructor overload ho sakta hai, override nahi — kyun?

Kyunki constructor inherit hi nahi hota. Child class parent ka constructor super() se bula sakti hai, par use override nahi kar sakti.


Hissa 3 — Collections & Generics

Yahi wo hissa hai jahan freshers sabse zyada atakte hain, aur isi par sabse zyada sawaal aate hain.

12. ArrayList vs LinkedList

ArrayList andar se ek array hai — index se uthana bahut tez (get seedha jump karta hai), par beech mein add/remove karne par saare elements khisakne padte hain.

LinkedList nodes ki chain hai — beech mein add/remove sasta, par index se uthane ke liye shuru se chal kar jaana padta hai.

Aam kaam ke liye ArrayList hi sahi choice hoti hai. Interview mein yahi kehna sahi hai.

13. HashMap andar se kaise kaam karta hai?

Key ka hashCode() nikalta hai → usse bucket tay hota hai → us bucket ke andar equals() se exact key dhoondhi jaati hai. Ek bucket mein ek se zyada entry aa jaayein (collision) to wo linked list banti hai, aur zyada bhar jaane par balanced tree ban jaati hai.

14. HashMap mein null key rakh sakte hain?

Map<String,Integer> m = new HashMap<>();
m.put(null, 1);
m.put(null, 2);
m.size()      // 1
m.get(null)   // 2

new Hashtable<String,Integer>().put(null, 1);
// NullPointerException

HashMap ek null key allow karta hai (doosri baar value overwrite ho jaati hai). Hashtable bilkul allow nahi karta.

15. equals override kiya par hashCode nahi — kya bigadta hai?

Ye sirf theory nahi hai, chala kar dekhiye:

// dono override
Set<Point> s1 = new HashSet<>();
s1.add(new Point(1));
s1.add(new Point(1));
s1.size();   // 1  — sahi

// sirf equals override, hashCode nahi
Set<NoHash> s2 = new HashSet<>();
s2.add(new NoHash(1));
s2.add(new NoHash(1));
s2.size();   // 2  — duplicate ghus gaya

Do barabar objects ke hashCode alag nikle, to wo alag bucket mein chale gaye aur equals ki naubat hi nahi aayi. Isiliye rule hai: equals override kiya to hashCode bhi kijiye.

16. Ye wala sawaal — jiska jawab zyadatar log galat batate hain

Sawaal: "for-each loop ke andar list se element remove karenge to kya hota hai?"

Ratta jawab hai — "ConcurrentModificationException aata hai." Aur ye jawab poora sach nahi hai.

Teenon case chala kar dekhiye, list [a, b, c]:

"a" remove kiya  ->  ConcurrentModificationException
"b" remove kiya  ->  koi exception nahi, list ban gayi [a, c]
"c" remove kiya  ->  ConcurrentModificationException

"b" par exception aata hi nahi. Wajah: iterator ka hasNext() sirf itna check karta hai ki cursor != size. b (doosra-aakhri element) hatate hi size 3 se 2 ho jaata hai aur cursor bhi 2 par hota hai — dono barabar, loop chup-chaap khatam ho jaata hai aur next() kabhi call hota hi nahi. next() hi wo jagah hai jahan check hota hai aur exception phenka jaata hai.

Isiliye ye exception se bhi zyada khatarnak hai — code kabhi-kabhi bina shikayat ke galat kaam kar jaata hai.

Sahi tareeke do hain:

Iterator<String> it = list.iterator();
while (it.hasNext()) if (it.next().equals("a")) it.remove();

// ya, sabse saaf:
list.removeIf(x -> x.equals("a"));

Interview mein agar aap ye bata dein ki "exception hamesha nahi aata, doosre-aakhri element par silently nikal jaata hai" — to samajhiye baat ban gayi.

17. Generics kyun hain?

Taaki galti compile time par pakdi jaaye, runtime par nahi. List<String> mein Integer daalne par code compile hi nahi hoga. Generics se aane wale ClassCastException bhi khatam ho jaate hain.

Ek gotcha jo poochha ja sakta hai — array mein ye safety nahi hai:

Object[] arr = new String[2];
arr[0] = Integer.valueOf(1);   // ArrayStoreException — runtime par

Array covariant hai, generics nahi. Isiliye generics zyada safe hain.


Taiyari Ka Tarika — 2 Hafte Ka Plan

Sab kuch ek saath padhne se kuch nahi hota. Ye kram sabse kaam aata hai:

  • Hafta 1 — Core Java aur OOPs. String, == vs equals, static, exception handling, aur chaaron pillars example ke saath. Har concept ka ek chhota program khud likh kar chalaaiye.
  • Hafta 2 — Collections. ArrayList, HashMap, HashSet, aur equals/hashCode ka rishta. Yahin se sabse zyada sawaal aate hain.
  • Roz 20 minute — output-based questions. Code dekh kar output batana — ye alag skill hai aur isi se interviewer basics parakhta hai.
  • Interview se pehle — apne resume ka har project khud se ek baar bol kar dekhiye. Technical round ka aadha waqt aksar wahin jaata hai.

Practice Kahan Karein

In sawaalon ka poora, tafseel wala version Hirenix ke Java track par free hai — teen chapter, 596 questions, har jawab Hinglish explanation ke saath:

Aur interview se pehle apna resume ek baar ATS score par check kar lijiye — Java developer ka resume aksar keyword ki wajah se pehle hi round mein ruk jaata hai, skill ki wajah se nahi.

FAQ

Fresher ke Java interview mein sabse zyada kya poochha jaata hai?

Teen jagah se sabse zyada sawaal aate hain — Core Java (String, static, exception handling), OOPs (encapsulation, inheritance, polymorphism, abstraction), aur Collections (ArrayList vs LinkedList, HashMap kaise kaam karta hai, equals aur hashCode). Inhi teen par pakad ho jaaye to fresher ka technical round nikal jaata hai.

Kya freshers se DSA bhi poochha jaata hai Java interview mein?

Service companies (TCS, Infosys, Wipro type) mein aam taur par basic level ka — array, string, HashMap use karke problem solve karna. Product companies mein DSA ka weight kaafi zyada hota hai. Pehle Core Java aur Collections solid kijiye, phir DSA par jaaiye.

String aur StringBuilder mein kya farq hai?

String immutable hai — ek baar bana to badal nahi sakta, har badlav naya object banata hai. StringBuilder mutable hai, wahi object badalta rehta hai. Isiliye loop ke andar bar-bar jodna ho to StringBuilder use kijiye, warna har chakkar mein naya String object banega.

equals aur hashCode dono override karna kyun zaroori hai?

HashMap aur HashSet pehle hashCode se bucket dhoondhte hain, phir usi bucket ke andar equals se match karte hain. Agar sirf equals override kiya aur hashCode nahi, to do barabar objects alag bucket mein chale jaate hain aur duplicate ban jaate hain. Is guide mein ye chala kar dikhaya gaya hai.

Java interview ki practice kahan kijiye?

Hirenix ka Java track (hirenix.in/interview-prep/java) — Core Java, Object-Oriented Java aur Collections & Generics ke 596 questions, Hinglish explanation ke saath, bilkul free.

Aage padho