|
-savol. Aytaylik, bizda dumaloq havola bor (bir-biriga havola qiladigan ikkita ob'ekt). Bunday juft ob'ektlar axlat yig'ish uchun mos bo'lishi mumkinmi va nima uchun?
|
bet | 6/6 | Sana | 10.09.2024 | Hajmi | 37,35 Kb. | | #270822 |
Bog'liq Memory Management in Java Interview Questions ( Answers)13-savol. Aytaylik, bizda dumaloq havola bor (bir-biriga havola qiladigan ikkita ob'ekt). Bunday juft ob'ektlar axlat yig'ish uchun mos bo'lishi mumkinmi va nima uchun?
Ha, dumaloq ma'lumotga ega bo'lgan bir juft ob'ekt axlat yig'ish uchun mos bo'lishi mumkin. Buning sababi, Java axlat yig'uvchisi dumaloq havolalarni qanday boshqarishi. U ob'ektlarni jonli deb hisoblaydi, ular ularga havola bo'lganda emas, balki ba'zi axlat yig'ish ildizidan (jonli oqim yoki statik maydonning mahalliy o'zgaruvchisi) boshlab ob'ekt grafigida harakatlanish orqali ularga erishish mumkin bo'lganda. Agar dumaloq havolaga ega bo'lgan bir juft ob'ektga biron bir ildizdan kirish imkoni bo'lmasa, u axlat yig'ish uchun mos deb hisoblanadi.
14-savol. Satrlar xotirada qanday ifodalanadi?
Java-dagi String misoli ikkita maydonga ega ob'ektdir: char[] qiymat maydoni va int xesh maydoni. Qiymat maydoni satrning o'zini ifodalovchi belgilar massivi bo'lib, xesh maydoni birinchi hashCode() qo'ng'irog'i paytida hisoblangan va shu vaqtdan beri keshlangan nol bilan ishga tushirilgan satrning hashCode kodini o'z ichiga oladi. Qiziqarli holat sifatida, agar satrning hashCode qiymati nolga teng bo'lsa, har safar hashCode() chaqirilganda uni qayta hisoblash kerak bo'ladi .
Muhimi shundaki, String misoli o'zgarmasdir: siz asosiy char[] massivini ololmaysiz yoki o'zgartira olmaysiz. Satrlarning yana bir xususiyati shundaki, statik doimiy satrlar string hovuziga yuklanadi va keshlanadi. Agar manba kodingizda bir nechta bir xil String ob'ektlari bo'lsa, ularning barchasi ish vaqtida bitta misol bilan ifodalanadi.
15-savol. Stringbuilder nima va undan foydalanish holatlari qanday? Stringbuilderga satr qo'shish va + operatori bilan ikkita satrni birlashtirish o'rtasidagi farq nima? Stringbuilder Stringbufferdan qanday farq qiladi?
StringBuilder belgilar va satrlarni qo'shish, o'chirish va kiritish orqali belgilar ketma-ketligini boshqarish imkonini beradi. Bu o'zgarmas String sinfidan farqli o'laroq, o'zgaruvchan ma'lumotlar strukturasidir .
Ikki String misolini birlashtirishda yangi ob'ekt yaratiladi va satrlar nusxalanadi. Agar biz halqadagi satrni yaratishimiz yoki o'zgartirishimiz kerak bo'lsa, bu juda katta axlat yig'uvchiga olib kelishi mumkin. StringBuilder string manipulyatsiyalarini ancha samarali boshqarish imkonini beradi.
StringBuffer StringBuilder -dan farq qiladi , chunki u ipdan himoyalangan. Agar bitta ipda satrni boshqarish kerak bo'lsa, uning o'rniga StringBuilder dan foydalaning .
3. Xulosa
Ushbu maqolada biz Java muhandislari intervyularida tez-tez paydo bo'ladigan eng keng tarqalgan savollarni ko'rib chiqdik. Xotirani boshqarish bo'yicha savollar asosan Java dasturchisi bo'yicha katta nomzodlarga beriladi, chunki suhbatdosh siz xotira bilan bog'liq muammolar ko'p bo'lgan ahamiyatsiz ilovalarni yaratganingizni kutadi.
Bu savollarning to'liq ro'yxati sifatida emas, balki keyingi tadqiqotlar uchun ishga tushirish maydonchasi sifatida qaralishi kerak. Biz, Baeldung'da, kelgusi suhbatlarda muvaffaqiyatlar tilaymiz.
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
-savol. Aytaylik, bizda dumaloq havola bor (bir-biriga havola qiladigan ikkita ob'ekt). Bunday juft ob'ektlar axlat yig'ish uchun mos bo'lishi mumkinmi va nima uchun?
|