مشاهده نسخه کامل
: معنی جمله C# type safety is unsafe چیست؟
vb.civil
13-09-2019, 13:52
دوستان سلام
من در مورد تفاوت های #C ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) و JAVA تحقیق میکردم که این جدول رو پیدا کردم . . .
اینجا یکی از تفاوت ها رو نوشته که C# type safety is unsafe و در مقابل برای جاوا نوشته Java type safety is safe
میخواستم ببینم منظور از این Safe و Unsafe بودن چیه ؟
ممنون
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام سی شارپ هم به طور طبیعی و پیشفرض type safety هست مگر اینکه خودتون بخواید unsafe اش کنید که توی زبان جاوا نیست.
حالا اینا چی هستن؟ ببینید مدیریت حافظه توی سی شارپ توسط دات نت انجام میشه و توی جاوا هم جاوا رانتایم.
حالا وقتی یک کلاس از اون وسط حافظه حذف بشه (dispose بشه) چه اتفاقی باید بیوفته؟ باید اون قسمت از حافظه که اشغال شده برگرده به سیستم عامل تا ازش استفاده کنه در نتیجه یک عملیاتی شبیه مرتب سازی در هنگام Garbage Collection اتفاق میوفته که باعث تغییر پونتر های بقیه ی کلاس های باقی مونده توی حافظه میشه در نتیجه احتمال اینکه پوینتر های بعضی از ابجکت ها تغییر کنه زیاده پس از نظر پرفورمنس هم کمی تاثیر گذار هست.
کد های unsafe توی سی شارپ کد هایی هستن که به صورت مجبوری توسط GC مرتب یا نابود نمیشن در نتیجه پوینتر هاشون هم سر جاش خواهد بود و تغییر نخواهد کرد در نهایت پرفورمنس بهتری خواهیم داشت.
vb.civil
21-09-2019, 10:40
مرسی دوست عزیز
یعنی الان این unsafe بودن یک برتری #C ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) هست نسبت به جاوا ؟
بله یکی از مزیت های سی شارپ نسبت به زبانی مثل جاوا همین هست که میتونید کد ها رو بصورت unsafe هم اجرا کنید که از این روش توی مباحث پرفورمنسی بسیار استفاده میشه.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.