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

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

من در آموزش‌ها مطالعه کردم که داده‌هایی از نوع 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);
	}
}
سوال 1 سال قبل در تالار برنامه نویسی توسط Sina Deuxshiri (416 امتیاز)
ویرایش 1 سال قبل توسط Saeed Zarinfam

1 جواب

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

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

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

جواب 1 سال قبل توسط Saeed Zarinfam (336 امتیاز)
انتخاب شده در 1 سال قبل توسط Sina Deuxshiri

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

+2 رأی
3 جواب میانگین بازدید روزانه 0.7468 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.38136 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.22321 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1871 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.28353 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.29360 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.49743 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.8151 بازدید
سوال 6 ماه قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
0 رأی
2 جواب میانگین بازدید روزانه 1.161,218 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.15118 بازدید
کانال تلگرام جواب یاب
...