0 امتیاز
قبل در برنامه نویسی توسط (0 امتیاز)
ویرایش شده قبل توسط

تفاوت دومقدار ارجاعی زیر چیست؟

;("String s = new String("hello

"String s = "hello

1 پاسخ

0 امتیاز
قبل توسط (187 امتیاز)
ویرایش شده قبل توسط
استفاده جاوا از String pool چند تا دلیل مهم میتونه داشته بhai

برای اینکه جاوا از میزان حافظه ی کمتری استفاده کنه و در واقع زمانی که آبجکتی از قبل ایجاد شده و در string pool جایگذاری شده باشه جاوا پس از پیدا کردن  آن در این محفظه دوباره همان آبجکت را تولید نمی کند و حافظه ی اضافی اشغال نمی نماید و ارجاعی (reference) به همان آبجکت را برمی گرداند.

دلیل دیگه افزایش کارایی برنامه و در نتیجه سرعت برنامه است.

ولی در موقعی که شما new استفاده می کنید هر بار آبجکت جدیدی توی قسمتی از Heap که جزو String pool هم نیست ایجاد میکنه و هیچ کدوم از این اشیاء با یکدیگر برابر نیستند(==)

سوالات مشابه

0 امتیاز
0 پاسخ 898 بازدید
+1 امتیاز
1 پاسخ 689 بازدید
+1 امتیاز
2 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 438 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
0 پاسخ 566 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
0 امتیاز
1 پاسخ 556 بازدید
0 امتیاز
2 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 3.0هزار بازدید
...