Java Confusing Concepts - Explained Simply
1. == vs .equals()
`==` reference check karta hai, `.equals()` value check karta hai.
Example:
String a = new String("hello");
String b = new String("hello");
a == b -> false (alag object)
[Link](b) -> true (same content)
2. Static vs Non-static
Static cheez class level hoti hai, object banane ki zarurat nahi.
Non-static cheez object level hoti hai.
Example:
static int count = 0; // sab objects ke liye common
3. Array vs ArrayList
Array - fixed size, primitive bhi store kar sakta hai.
ArrayList - dynamic size, sirf objects store karta hai (like Integer, String).
4. String Immutable hota hai
String ka ek baar value ban gaya, toh change nahi hota.
Har modification naya String object banata hai.
5. Collections Methods
Common methods:
- sort(list): list ko ascending order me sort karta hai
- reverse(list): list ko ulta karta hai
- max/min: max ya min element deta hai
- frequency(list, val): element ki frequency count karta hai