ارسال پارامتر از نوع String به متد Call By Reference

+1 رأی
میانگین بازدید روزانه 0.12252 بازدید

من در آموزش‌ها مطالعه کردم که داده‌هایی از نوع Reference وقتی به متدی پاس می‌شون، مقدار اصلی آن‌ها هم تغییر می‌کنه. اما در کد زیر این اتفاق نمی‌افته. داده‌ها از نوع String هستن، ولی داده‌ی اصلی عوض نمیشه. لطف کنید راهنمایی کنید. ممنون.

public class MainApp {

	public static void badSwap(String var1, String var2) {
		String temp = var1;
		var1 = var2;
		var2 = temp;
	}

	public static void main(String[] args) {
		String a = "a";
		String b = "b";
		
		badSwap(a, b);
	}
}
سوال 5 سال قبل در تالار برنامه نویسی توسط ssss (467 امتیاز)
ویرایش 5 سال قبل توسط Saeed Zarinfam

1 جواب

+1 رأی
 
بهترین جواب

درست است که نوع داده String جزء انواع reference حساب می شود ولی String ها در جاوا immutable هستند و پس از تعریف مقدار آنها قابل تغییر نیست و رفتاری شبیه انواع داده primitive دارند.

به این سوال هم نگاهی بیاندازید.

جواب 5 سال قبل توسط Saeed Zarinfam (899 امتیاز)
انتخاب شده در 5 سال قبل توسط ssss

سوال های مشابه

+2 رأی
3 جواب میانگین بازدید روزانه 0.81,825 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.22431 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.18553 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.11216 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.371,063 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.26749 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.581,827 بازدید
0 رأی
4 جواب میانگین بازدید روزانه 0.48863 بازدید
سوال 4 سال قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
0 رأی
2 جواب میانگین بازدید روزانه 0.51,322 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 1.43,329 بازدید
کانال تلگرام جواب یاب
...