ورود

View Full Version : سوال: متغیر final



hafez1
چهارشنبه 06 خرداد 1394, 18:06 عصر
سلام دوستان.
من تو یه برنامه هام اول یکی از متغیرام رو static تعریف کردم.
حالا میخام بدونم اگه static final بکنمش آیا فایده ای در مصرف حافظه داره؟
اصلا فاینال برا چی هست؟
حافظه مصرفی هیپ رو کم میکنه؟

cups_of_java
پنج شنبه 07 خرداد 1394, 16:28 عصر
متغیر های فاینال ثابت هستند یعنی اگه به یک شی ارجا کنن دیگه نمی تونی به شی دیگه ای ارجاعشون بدی و تا آخر به همون شی ارجاع میکنن. اگه یه primitive رو فاینال کنی طبیعتن مقدارش رو دیگه نمی تونی عوض کنی (مثل const)

الان یادم نیست JVM اینا رو توی حافظه ثابت ها فکر کنم نگه میداره اما خود اون رفرنس فاینال هست و تاثیری نداره توی حافظه هیپ شما چندان