مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت دوازدهم

سلام و خسته نباشید خدمت همه
قسمت دوازدهم از مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید رو در پیش داریم که میتونید از طریق لینک های زیر به توضیحات و قسمت های قبلی دسترسی داشته باشید ، امروز میریم سراغ ده سوال بعدی...
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت اول
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت دوم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت سوم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت چهارم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت پنجم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت ششم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت هفتم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت هشتم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت نهم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت دهم
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت یازدهم


۱۱۱. معنی کلمه کلیدی synchronized چیست؟

وقتی که شما دو thread دارید که باید به یک منبع متصل شوند ، بدون استفاده از synchronized ممکن است thread اول تغییراتی که thread دوم داده است را متوجه نشود.

بلاک های synchronized وقتی که توسط یک thread فراخوانی می شوند منتظر می مانند تا کار thread قبلی با این بلاک پایان پیدا کند سپس کار خود را شروع می کنند. به عبارت دیگر تنها یک thread در لحظه می تواند به این متد دسترسی داشته باشد.


۱۱۲. معنی کلمه کلیدی volatile چیست؟

این کلمه کلیدی نشان می دهد که یک متغیر نباید به صورت محلی در یک thread کش بشود ( از متغیر کپی گرفته نشود ) و هر گونه تغییری که لازم باشد بر روی متغیر اصلی درون حافظه اصلی داده شود
اینگونه می توان دو thread را به صورت همزمان به یک متغیر متصل کرد و بر خلاف synchronized دیگر thread منتظر thread قبلی نمی ماند و هر لحظه می تواند عملیات خواندن و نوشتن بر روی یک متغیر را انجام دهد.


۱۱۳. فرق AutoBoxing و UnBoxing چیست ؟

به تبدیل خودکار primitive type ها به کلاس های بسته بندی نظیر آن ها توسط کامپایلر جاوا AutoBoxing می گویند.
برای مثال تبدیل int به Integer و تبدیل double به Double در اصل AutoBoxing هستند و برعکس این تبدیل را UnBoxing می گویند


۱۱۴. Optional در جاوا چیست ؟

Optional یک شئ نگهدارنده است که اشیاء غیر Null را در خود نگه می دارد.
شئ Optional در اصل Null را با بی مقداری ارائه می دهد. کاربرد این متد در ساده کردن کد است چون به جای چک کردن null بودن متغیر از در دسترس بودن ( available ) و در دسترس نبودن ( not available ) مقدار استفاده می شود.


۱۱۵. خارجی سازی ( externalization ) چیست ؟

در عمل serialization مسئولیت خواندن و نوشتن اشیاء در زمان هایی که جزئیات عمل serialization زیاد مهم نیست با JVM است .
اما در عمل serialization به صورت پیش فرض اطلاعات حساس مانند رمز ها و گواهینامه ها محافظت نمی شوند.
به همین جهت عمل externalization کنترل عملیات خواندن و نوشتن اشیاء را به صورت کامل به دست برنامه نویسان می گذارد.
کافی ایست که اینترفیس java.io.Externalizable را پیاده سازی کنید تا بتوانید با استفاده از تابع writeExternal و readExternal عملیات خواندن و نوشتن را کنترل نمایید.


۱۱۶. ساختمان داده چیست ؟

آرایش پایه ای مجموعه ای از داده ها را ساختمان داده می گویند. پنج رفتار اساسی برای ساختمان داده ها تعریف می شود که عبارتند از:

  • دسترسی ( access )
  • افزودن ( insert )
  • حذف کردن ( delete )
  • یافتن ( find )
  • مرتب سازی ( sort )


۱۱۷. علامت O بزرگ را توضیح دهید.

علامت O بزرگ روند صعودی زمان اجرای الگوریتم را نشان می دهد. برای محاسبه O بزرگ یک الگوریتم باید بد ترین حالت ممکن برای زمان اجرای یک الگوریتم را مد نظر بگیریم.


۱۱۸. علامت امگا بزرگ را توضیح دهید.

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


۱۱۹. آرایه ها در جاوا :

آرایه ها مجموعه های مرتبی هستند که بر خلاف لیست ها دارای طول ثابت هستند و در پشته ها و صف ها به کار می روند.

آرایه ها نمی توانند type های موروثی را پشتیبانی کنند اما لیست ها می توانند.

آرایه ها می توانند همه نوع داده ای را در خود ذخیره کنند در حالی که List ها نمی توانند داده های با نوع primitive را در خود ذخیره کنند و فقط برای ذخیره سازی اشیاء کاربرد دارند.

  • الگوریتم فضاسازی آن ها به طور متوسط دارای امگا n و اُ بزرگ n می باشد
  • الگوریتم جستجو آن ها به طور متوسط دارای امگا n و اُ بزرگ n می باشد
  • الگوریتم افزودن آن ها به طور متوسط دارای امگا n و اُ بزرگ n می باشد
  • الگوریتم حذف کردن آن ها به طور متوسط دارای امگا n و اُ بزرگ n می باشد


۱۲۰. فهرست پیوندی ( Linked List ) در جاوا:

یک فهرست پیوندی در جاوا دارای دو اشاره گر Head و Tail می باشد که Head به اولین مورد فهرست و Tail به آخرین مورد فهرست اشاره می کند. فهرست پیونده در جاوا از نوع دایره ای نمی باشد به همین علت اشاره گر Next در Tail فهرست به Head اشاره نمی کند و فقط Null است.

هر گره یک اشاره گر دارد که به گره بعدی اشاره می کند.

گره ها در حالت طبیعی به صورت dynamic ذخیره می شوند و این مورد به این معناست که تنها زمانی که نیاز باشد فضایی را از حافظه به خود اختصاص می دهند.

افزودن ،‌ حذف کردن و اصلاح کردن در آن ها آسان است.

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

فهرست پیوندی یگانه ( Singly linked list ) : در فهرست پیوندی یگانه هر گره دارای تنها یک اشاره گر آن هم به گره بعدی در توالی می باشد

فهرست پیوندی دوگانه ( Doubly linked list ) : در فهرست پیوندی یگانه هر گره دارای تنها دو اشاره گر یکی به گره بعدی و یکی به گره قبلی در توالی می باشد

  • الگوریتم فضاسازی آن ها به طور متوسط دارای امگا n و اُ بزرگ n می باشد
  • الگوریتم جستجو آن ها به طور متوسط دارای امگا n و اُ بزرگ n می باشد
  • الگوریتم افزودن آن ها به طور متوسط دارای امگا ۱ و اُ بزرگ ۱ می باشد
  • الگوریتم حذف کردن آن ها به طور متوسط دارای امگا ۱ و اُ بزرگ ۱ می باشد



ترجمه متنی از Anitaa Murthy

تشکر بابت مطالعه پست
لایک و حمایت یادتون نره
سوالی بود درخدمتم
نوشته شده با ❤️ توسط کوچیکتون حمیدرضا شجراوی =)))