آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مدیریت حافظه اتوماتیک چیست؟

konect  12 سال پیش  12 سال پیش
0 0

لطفا بگید جاوا حافظه رو مدیریت میکنه یعنی چی؟

مگه اونهای دیگه مدیریت نمیکنن؟ مثلا #C هم که همین کار رو میکنه. لطفا با مثال ذکر کنید.

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
ajn91  12 سال پیش
+1 0

نمیتونم دقیق واستون توضیح بدم  ولی چیزی که بلدمو میگم امیدوارم دوستان کاملش کنند. فک کنم C# و Java هر دو حافظه رو مدیریت میکنند چیزی که در C++  وجود نداره برای مثال شما یک ابجکت از یک کلاس ساختید و کارتون باهاش تموم شده میدونید که همچنان ابجکت در حافظه وجود داره در C++ شما باید دستی  فظایی که اون ابجکت اشغال کردرو  ازاد کنید اما در جاوا وقتی  رفرنسی به اون ابجکت وجود نداشته باشه به طور خودکار ابجکت پاک میشه و حافظه ازاد میشه.امیدوارم صحیح گفته باشم دوستان اگه اشتباه گفتم ممنون میشم تصحیح کنید

+1 0
شما درست گفتی، در جاوا بوسیله Garbage Collector این کار انجام میشه ( آزاد سازی قسمتی از حافظه که بوسیله یک پروسه بیکار پر شده باشه). (12 سال پیش)
+1 0
لینک لینک هم واسه آشنایی با Garbage Collector خوبه (12 سال پیش)
پاسخ به سوال 
CreativeBoy  12 سال پیش
+3 0

از نظر من دوستمون ajn.91 درست گفتن، اینجوری که من فهمیدم java و #C هر دوتاشون به صورت اتوماتیک حافظه رو کنترل میکنن، منم توضیحی مثل همین دوستمون داشتم، به این دو تا لینک برید میتونید اطلاعات بیشتری بدست بیارید

Automatic memory management in CS

Java Memory Management

0 0
آفرین به شما توضیح همتون خوب بود حالا اگه میشه بین سی شارپ و جاوا در همین زمینه یک مقایسه ای بکنیم بد نیست. (12 سال پیش)
0 0
دوستان این لینک هم بد نیست لینک (12 سال پیش)
+1 0
خیلی مفید بود، چیز دیگه ای که من فهمیدم اینه که #C از اول مدیریت حافظه رو به صورت native داشته ولی، توی جاوا از نسخه 7 به بعد وارد شده. (من توی قسمت دوم این جمله یکم شک دارم اگه اطلاعات کاملتری هست بفرمایید.) (12 سال پیش)
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+6 0

Garbage Collector یا به فارسی آشغال جمع کن جاوا رو به یکی از زبان های بی نظیر در زمینه ی مدیریت حافظه تبدیل کرده ، همون طور که شما اشاره کردید ، در اکثر زبان ها ، این وجود دارد ، اما خوب در جاوا به دلیل قابل حمل بود در سطح پلتفرم cross platform بودنش پیاده سازیش سخت تر بوده که به نظرم خیلی خوب از پسش بر اومدن چون تو دستگاه های ضعیف تر استفاده ازش بسیار زیاده

موضوع دوم ، کنترل حافظه هست ، جاوا به شما اجازه نمیده با یه اشاره گر هر جای حافظه رو که خواستید ، دستکاری کنید ، این درحالی بود که توی++C با یک اشاره گر به حافظه میشه ، برنامه های درحال اجرا رو اذیت کرد ، و یک جور عملیات مخرب انجام داد ،

در واقع اینجا اومده و مشکل ویندوز که در پائین میگم رو حل میکنه :

موضوع یکی از برتری های لینوکس نسبت به ویندوزه ، که ویندوز بین  برنامه ها دیواری نداره و شما میتونید به حافظه ای که در اختیار سایر برنامه ها هست دسترسی داشته باشید ، این موضوع در ویندوز تا جایی ادامه پیدا میکنه که شما قصد دسترسی به یکی از سلول های حافظه ی متعلق به ویندوز رو داشته باشید ، در این حالت ، ویندوز از خودش دفاع میکنه و برنامه رو kill میکنه ، و ساده تر بگم برنامه تموم میشه ، درحالی که در لینوکس ، شما از ابتدا اجازه ی دسترسی کامل ندارید ، فقط از یک نقظه تا نقطه ی دیگه که مربوط به خودتونه ، در اصل این باعث برتری لینوکس در استفاده از منابع میشه ، و در اجرای برنامه های پردازشی لینوکس بسیار قوی تره  ( امیدوارم دعوا نشه بگید نه ویندوز بهتره ! :|  )

  کلا با این چند مورد ، ذکر این نکته لازمه که جاوا به صورت یک ماشین شبیه ساز در حال اجرا بر روی سیستم عامله و خودش یه مقدار حافظه ی معین داره ،  اما وقتی به این خوبی مدیریتش میکنه ، به قول معروف ایول داره :)

با این تفاسیر اینها اطلاعات بنده بود که از مطالعه بدست اوردم ، به اینها اکتفا نکنید چون ممکنه غلط باشه که لطفا تصحیحم کنید ، البته که ممکنه منظور منتقل نشده باشه ، که بگید بیشتر توضیح بدم ، و در آخر همه ی اینها دلیل نمیشه که ما مسئله ی مدیریت حافظه رو در برنامه هامون نادیده بگیریم

0 0
توضیحات جالبی بود مجتبی جان. ممنون (12 سال پیش)
0 0
ممنون خیلی خوب بود. اینم که گفتی لینوکس تو برنامه های پردازشی قویتره درسته چون جد این لینوکس که همون یونیکسه خیلی قبلتر از dos از پردازش های همزمان پشتیبانی میکرد، معلومه که قویتره :) (12 سال پیش)
0 0
ممنون از توضیحات خوبت (12 سال پیش)
پاسخ به سوال 
CreativeBoy  12 سال پیش
+1 0

همونطور که Garbage collector به صورت native توی JVM هست توی CLR هم هست. ولی کدومش از لحاظ مدیریت حافظه بهتره؟ این طور که من فهمیدم هر دوتاشون در یک سطح هستن. ضمنا garbage collector یا کلا مدیریت اتوماتیک حافظه توی کدوم نسخه جاوا بهش اضافه شد؟ (CLR از اول اینو داشته)

+1 0
کسی جواب این سوالارو نداشت؟ (12 سال پیش)
+1 0
جواب سئوال ها خیلی مهم نیست :) مهمتر این هست که الان Garbage Collector داریم و بریم سر اطلاعات کاربردی تر و مهمتر :) (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .