Java पैरामीटर वैल्यू से पास करता है या रेफरेंस से? लोकप्रिय मिथक को समझते हैं
सभी को नमस्कार! मैं एक शुरुआती Java डेवलपर हूँ, और मैं एक बुनियादी सवाल से लगातार भ्रमित होता हूँ। कई लोग कहते हैं कि Java ऑब्जेक्ट्स को रेफरेंस से पास करता है, और प्रिमिटिव्स को वैल्यू से। लेकिन मैंने पढ़ा है कि वास्तव में Java हमेशा पैरामीटर को वैल्यू से पास करता है। मैंने समझने के लिए एक छोटा कोड लिखने की कोशिश की, लेकिन इसने मुझे और भी भ्रमित कर दिया।
यहाँ एक उदाहरण है:
```java
public class Main {
public static void main(String[] args) {
int x = 5;
changePrimitive(x);
System.out.println("After changePrimitive: " + x); // आउटपुट: 5
StringBuilder sb = new StringBuilder("Hello");
changeObject(sb);
System.out.println("After changeObject: " + sb); // आउटपुट: Hello World
}
public static void changePrimitive(int value) {
value = 10;
}
public static void changeObject(StringBuilder builder) {
builder.append(" World");
}
}
```
पहले मामले में प्रिमिटिव `int` नहीं बदला — यह समझ में आता है, वैल्यू से पास हुआ।