Immutable vs mutable
Javada shunday tushuncha bor, Immutable vs mutable o'zbekcha tarjima qilganda o'zgaruvchi va o'zgarmas deganga yaqin, Ya'ni o'zgaruvchiga qiymat berilganda uni yangilanishi yoki yangilanmasdan xotirada yangi yaratilishi.
Immutable - O'zgaruvchiga qiymat beramiz, unga qayta qiymat beradigan bo'lsa xotirada ochilgan o'rniga qayta yozmaydi, yangi joy ochib shu joyga qiymat birlashtiriladi. Misol uchun String misolida ko'rib chiqamiz: String tipida o'zgaruvchi ochib unga qiymat beramiz, o'zgaruvchimi nomi stack da, o'zgaruvchini qiymat esa heap da saqlanadi. O'zgaruvchiga yanigi qiymat bersak heap dagi qiymat o'zgarmaydi, boshqa qiymat beriladida, stackdagi o'zgaruvchani nomi yangi reference qilib yangi qiymat bog'lanadi, eskisi o'chiradi. Shu xolat immutablelik deyiladi. Ya'ni yangi qiymat berganda xotiradagi qiymat o'zgarmaydi, yangi joy ochib shunga bog'lab qo'yiladi. Bunga misol Wrapper classlar hammasi immutable hisoblanadi.
Mutable - mutable esa aksincha xotirada ochilgan qiymat o'zgartirsa bo'ladi
#immutable #mutable
@Java_suhbat_savollari
Javada shunday tushuncha bor, Immutable vs mutable o'zbekcha tarjima qilganda o'zgaruvchi va o'zgarmas deganga yaqin, Ya'ni o'zgaruvchiga qiymat berilganda uni yangilanishi yoki yangilanmasdan xotirada yangi yaratilishi.
Immutable - O'zgaruvchiga qiymat beramiz, unga qayta qiymat beradigan bo'lsa xotirada ochilgan o'rniga qayta yozmaydi, yangi joy ochib shu joyga qiymat birlashtiriladi. Misol uchun String misolida ko'rib chiqamiz: String tipida o'zgaruvchi ochib unga qiymat beramiz, o'zgaruvchimi nomi stack da, o'zgaruvchini qiymat esa heap da saqlanadi. O'zgaruvchiga yanigi qiymat bersak heap dagi qiymat o'zgarmaydi, boshqa qiymat beriladida, stackdagi o'zgaruvchani nomi yangi reference qilib yangi qiymat bog'lanadi, eskisi o'chiradi. Shu xolat immutablelik deyiladi. Ya'ni yangi qiymat berganda xotiradagi qiymat o'zgarmaydi, yangi joy ochib shunga bog'lab qo'yiladi. Bunga misol Wrapper classlar hammasi immutable hisoblanadi.
Mutable - mutable esa aksincha xotirada ochilgan qiymat o'zgartirsa bo'ladi
#immutable #mutable
@Java_suhbat_savollari
π4π¨βπ»3β€1
String Thread bilan ishlaganda, xavfsizmi?
Ha,
Chunki String immutable class hisoblanadi, immutable classlarni hammasi thread safe hisoblanadi.
Nimaga immutable classlar thread safe, chunki immutable classlarni qiymat o'zgarmaydi. O'zgarishi kerak bo'lgan joylarda yangi object qaytaradi, bu avvalgi objectni qiymat o'zgarishiga olib kelmaydi.
#string #immutable #thread_safe
@Java_suhbat_savollari
Ha,
Chunki String immutable class hisoblanadi, immutable classlarni hammasi thread safe hisoblanadi.
Nimaga immutable classlar thread safe, chunki immutable classlarni qiymat o'zgarmaydi. O'zgarishi kerak bo'lgan joylarda yangi object qaytaradi, bu avvalgi objectni qiymat o'zgarishiga olib kelmaydi.
#string #immutable #thread_safe
@Java_suhbat_savollari
π¨βπ»5
StringBuffer va StringBuilderni kuchsiz tomonlari.
StringBuffer - Threadda xafvsiz hisoblanadi, bunga qanday erishgan (π§) ? Methodlarini synchronized qilish bilan, ya'ni StringBuffer synchron xisoblanadi. Synchronligi uning kuchsiz tomoni.
StringBuilder - Threadda xavfsiz emas, ya'ni kuchsiz tomoni threadda kuchli hisoblanmaydi, lekin eng asosiy katta yaxshi tomoni tez ishlaydi, String, StringBuffer, StringBuilder orasida eng tezi StringBuilder hisoblanadi, chunki u synchron emas
StringBuffer, StringBuilder - bu ikkitasining eng katta foydali tomoni, immutable emasligi.
#stringbuffer #stringbuilder #synchronized
@Java_suhbat_savollari
StringBuffer - Threadda xafvsiz hisoblanadi, bunga qanday erishgan (π§) ? Methodlarini synchronized qilish bilan, ya'ni StringBuffer synchron xisoblanadi. Synchronligi uning kuchsiz tomoni.
StringBuilder - Threadda xavfsiz emas, ya'ni kuchsiz tomoni threadda kuchli hisoblanmaydi, lekin eng asosiy katta yaxshi tomoni tez ishlaydi, String, StringBuffer, StringBuilder orasida eng tezi StringBuilder hisoblanadi, chunki u synchron emas
StringBuffer, StringBuilder - bu ikkitasining eng katta foydali tomoni, immutable emasligi.
#stringbuffer #stringbuilder #synchronized
@Java_suhbat_savollari
π¨βπ»3
String,StringBuffer,StringBuilder.pdf
39.2 KB
String, StringBuffer, StringBuilder
π¨βπ»6π1π₯1
HashMap qanday ishlaydi?
HashMap - Ma'lumotlarni
Internal qanday ishlaydi ? π€
HashMap ichida
Node arrayda HashMapni qanday saqlaydi ?π§
Node arrayni defualt uzunligi. 16 ga teng bo'ladi. HashMapdan object olganimizda avtomatik Node array yaratiladi. Unga malumot qo'shayotganimizda node yaratadi. Ya'ni keyidan hash yasab hashga soladi, keyni o'zini keyga soladi, valueni valuega soladi, next null holatda turib turadi.
Yasalga node qayerda joylashadi?
Yasalgan node Node arrayga saqlanadi. Qayeriga saqlanadi? Nodedagi keyni node arrayni uzunligidan indexni hisoblaydi, yani
Ya'ni key orqali biz u Node arrayda qaysi indexda turganini bilib olishimiz mumkin. Har doim yangi malumot qo'shilganda. Shu algoritm ishlaydi.
Bazi bir keylarning hashi bir xil bo'lib qolishi mumkin. Yani qiymat har xil hash bir xil bu holda. Shu indexda turgan nodeni next degan qiymatiga qo'shiladi. Ya'ni hashlangandan bir xil qiymat qaytsa. Shu indexdagi oxirgi nodening next qiymatiga qo'shiladi. (Xuddi LinkedListga o'xshab ishlaydi).
Yana bir savol tug'uladi uni bir amallab qo'shib oldik endi uni qanday qilib key bo'yicha olsak bo'ladi?
Qanday qilib key bo'yicha valueni olishimiz mumkin. Olmoqchi bo'lganimizni bizga keyi kirib keladi. Biz esa bu keyda xuddi oldingi algoritm bo'yicha qaysi indexda joylashgnini aniqlaymiz, ya'ni keyni hashlab node arrayni uzunligida qaysi indexda joylashganini aniqlaymiz. Yani u qaysi node indexda turgani aniq bo'ladi. Endi esa Uni valuesini topishimiz kerak. Bita indexda ko'pgina nodelar ham joylashishi mumkinligini yuqorida aytdim, yani next next qiymat bo'lib joylashib ketishi mumkin. Biz bularni orasida valueni qanday olishimiz mumkin. Kirib kelgan keyni shu nodelarni keyi bilan solishtirib ko'ramiz. Qaysi nodeni keyiga teng bo'ladigan bo'lsa shu nodeni valuesini qaytaradi.
Ingliz tilini biluvchilar uchun manfatli bo'ladi
#hashmap #node #nodearray #hash #key #value
@Java_suhbat_savollari
HashMap - Ma'lumotlarni
key value holatida saqlaydi. Keylari unique (bir xili bo'lmaydi) bo'ladi. Yangi ma'lumot qo'shilganda, agar yangi kiritilgan qiymatdagi key HashMapda bo'lmasa yangi qiymat sifatdi qo'shadi, agar u key o'zi bor bo'lsa qiymatini yangilab qo'yadi.Internal qanday ishlaydi ? π€
HashMap ichida
Node array da saqlaydi. Nodeni ichida hash (int), key (generic type), value (generic type), next (Node) saqlaydi. Ya'ni o'zining keyi, valuesi, hashi (shu nodeni keyini hashlab nodeni hashini hosil qilinadi), va o'zidan keyin turuvchi nodeni saqlaydi.Node arrayda HashMapni qanday saqlaydi ?π§
Node arrayni defualt uzunligi. 16 ga teng bo'ladi. HashMapdan object olganimizda avtomatik Node array yaratiladi. Unga malumot qo'shayotganimizda node yaratadi. Ya'ni keyidan hash yasab hashga soladi, keyni o'zini keyga soladi, valueni valuega soladi, next null holatda turib turadi.
Yasalga node qayerda joylashadi?
Yasalgan node Node arrayga saqlanadi. Qayeriga saqlanadi? Nodedagi keyni node arrayni uzunligidan indexni hisoblaydi, yani
node_arraydagi_indexi = hash & node_arrayni_uzunligi; Shu formala orqali qayerga joylashishi kerakligini aniqlaydi.Ya'ni key orqali biz u Node arrayda qaysi indexda turganini bilib olishimiz mumkin. Har doim yangi malumot qo'shilganda. Shu algoritm ishlaydi.
Bazi bir keylarning hashi bir xil bo'lib qolishi mumkin. Yani qiymat har xil hash bir xil bu holda. Shu indexda turgan nodeni next degan qiymatiga qo'shiladi. Ya'ni hashlangandan bir xil qiymat qaytsa. Shu indexdagi oxirgi nodening next qiymatiga qo'shiladi. (Xuddi LinkedListga o'xshab ishlaydi).
Yana bir savol tug'uladi uni bir amallab qo'shib oldik endi uni qanday qilib key bo'yicha olsak bo'ladi?
Qanday qilib key bo'yicha valueni olishimiz mumkin. Olmoqchi bo'lganimizni bizga keyi kirib keladi. Biz esa bu keyda xuddi oldingi algoritm bo'yicha qaysi indexda joylashgnini aniqlaymiz, ya'ni keyni hashlab node arrayni uzunligida qaysi indexda joylashganini aniqlaymiz. Yani u qaysi node indexda turgani aniq bo'ladi. Endi esa Uni valuesini topishimiz kerak. Bita indexda ko'pgina nodelar ham joylashishi mumkinligini yuqorida aytdim, yani next next qiymat bo'lib joylashib ketishi mumkin. Biz bularni orasida valueni qanday olishimiz mumkin. Kirib kelgan keyni shu nodelarni keyi bilan solishtirib ko'ramiz. Qaysi nodeni keyiga teng bo'ladigan bo'lsa shu nodeni valuesini qaytaradi.
Ingliz tilini biluvchilar uchun manfatli bo'ladi
#hashmap #node #nodearray #hash #key #value
@Java_suhbat_savollari
π3
π₯3
HashSet nima u ?
HashSet ham collectionlardan biri hisoblanadi, ya'ni malumot saqlovchi data type. U malumotlarni unique holatda saqlaydi, ya'ni elementlar bir martadan ortiq takrorlanmaydi.
U uniquelikka qanday erishadi?
HashSet ichki qismda, HashMap ishlatadi. HashSetdan object olganimizda ichki qismda HashMapdan va Object dan object oladi. HashSetning qiymatlarini HashMapning keyiga joylashtiradi hamda, hashmapni valuesiga Objectdan olgan objectini joylashtiradi, yani keylari har xil, valuelari bir xil bo'ladi.
HashMapda index bo'lmaydi. Faqat uni iterate qilib elementlariga murajaat qilishimiz mumkin.
Xulosa qiladigan, bo'lsak HashSetni orqa fonida HashMap yotadi. Uniquelikni ham HashMapni key orqali saqlab qoladi.
@Java_suhbat_savollari
HashSet ham collectionlardan biri hisoblanadi, ya'ni malumot saqlovchi data type. U malumotlarni unique holatda saqlaydi, ya'ni elementlar bir martadan ortiq takrorlanmaydi.
U uniquelikka qanday erishadi?
HashSet ichki qismda, HashMap ishlatadi. HashSetdan object olganimizda ichki qismda HashMapdan va Object dan object oladi. HashSetning qiymatlarini HashMapning keyiga joylashtiradi hamda, hashmapni valuesiga Objectdan olgan objectini joylashtiradi, yani keylari har xil, valuelari bir xil bo'ladi.
HashMapda index bo'lmaydi. Faqat uni iterate qilib elementlariga murajaat qilishimiz mumkin.
Xulosa qiladigan, bo'lsak HashSetni orqa fonida HashMap yotadi. Uniquelikni ham HashMapni key orqali saqlab qoladi.
@Java_suhbat_savollari
π3π«‘3π₯1π1
Assalomu alaykum,
Qaysi mavzuda post chiqishini hohlaysizlar?
Qaysi mavzuda post chiqishini hohlaysizlar?
Anonymous Poll
44%
ArrayList
56%
LinkedList
LinkedList
Linkedlist - asosan ma'lumot ko'p qo'shiliadigan qismda ishlatiladi.
LinkedList -> ma'lumotni nodelarda saqlaydi. Node o'zining qiymat, o'zidan keyingisi va o'zidan oldigisini saqlaydi. Bu degani ma'lumotlar zanjir kabi bir biriga bog'langan bo'ladi.
Nima uchun ma'lumot qo'shiladigan joyda ishlatiladi -> Sababi yuqorida takidlanganidek zanjir kabi boglanadi. Oxirgi nodeni o'zidan keyingi nodei null holatda turadi. Agar oxiriga qo'shilsa, shu eng oxirda turgan nodeni nextiga joylab qo'yadi. Boshiga qo'ymoqchi bo'lsa ham shunday boshida nodeni o'zidan oldigisiga joylashtirib qo'yadi. Shuning uchun ma'lumot ko'p qo'shiladigan joyda ishlatish yaxshi bo'ladi
@Java_suhbat_savollari
Linkedlist - asosan ma'lumot ko'p qo'shiliadigan qismda ishlatiladi.
LinkedList -> ma'lumotni nodelarda saqlaydi. Node o'zining qiymat, o'zidan keyingisi va o'zidan oldigisini saqlaydi. Bu degani ma'lumotlar zanjir kabi bir biriga bog'langan bo'ladi.
Nima uchun ma'lumot qo'shiladigan joyda ishlatiladi -> Sababi yuqorida takidlanganidek zanjir kabi boglanadi. Oxirgi nodeni o'zidan keyingi nodei null holatda turadi. Agar oxiriga qo'shilsa, shu eng oxirda turgan nodeni nextiga joylab qo'yadi. Boshiga qo'ymoqchi bo'lsa ham shunday boshida nodeni o'zidan oldigisiga joylashtirib qo'yadi. Shuning uchun ma'lumot ko'p qo'shiladigan joyda ishlatish yaxshi bo'ladi
@Java_suhbat_savollari
π6
Multithreading
Dasturlashdagi multithreading tushunchasi.
Protsessorni bir vaqtda, ko'p ishlarni qilishini multithreading deb tushunsak bo'ladi. Bu haqida to'liqroq ma'lumotni quyidagi link orqali olsangiz bo'ladi.
Javadagi multithreading haqida esa keyingi postda ma'lumot beramiz.
Multihreading asosiy tushuncha
#multithreading #thread #hayotiy_misol
@Java_suhbat_savollari
Dasturlashdagi multithreading tushunchasi.
Protsessorni bir vaqtda, ko'p ishlarni qilishini multithreading deb tushunsak bo'ladi. Bu haqida to'liqroq ma'lumotni quyidagi link orqali olsangiz bo'ladi.
Javadagi multithreading haqida esa keyingi postda ma'lumot beramiz.
Multihreading asosiy tushuncha
#multithreading #thread #hayotiy_misol
@Java_suhbat_savollari
π6
Javada multithreading
Java dasturlash tilida, multithreadingga katta e'tibor berilgan.
Java dasturlash tilida multithreading
#multithreading #thread #java #sleep #threadpool #threadgroup
@Java_suhbat_savollari
Java dasturlash tilida, multithreadingga katta e'tibor berilgan.
Java dasturlash tilida multithreading
#multithreading #thread #java #sleep #threadpool #threadgroup
@Java_suhbat_savollari
π5
JDK vs JRE vs JVM
Java tiilda yozilgan source kodlar qanday run bo'ladi?
Java dasturlash tilida yozilgan source kodlar (*.java) JDK orqali kompilyatsiya qilinib. Kompilatsiya qilingan java byte code JVM ni ichiga JRE orqali yuklab beriladi. JVM ni ichida qayta interpretasiya boβlib. Platform independentlik taminlanadi. Yaβni Platformadan mustaqil boβladi. JDK da kompilyatsiya qilingan kod. Istilgan operatsion tizim muammosiz ishga tushadi. Hamma platformada bir xil ishlaydi.
JDK vs JRE vs JVM
#JDK #JRE #JVM #classloader #compilation
@Java_suhbat_savollari
Java tiilda yozilgan source kodlar qanday run bo'ladi?
Java dasturlash tilida yozilgan source kodlar (*.java) JDK orqali kompilyatsiya qilinib. Kompilatsiya qilingan java byte code JVM ni ichiga JRE orqali yuklab beriladi. JVM ni ichida qayta interpretasiya boβlib. Platform independentlik taminlanadi. Yaβni Platformadan mustaqil boβladi. JDK da kompilyatsiya qilingan kod. Istilgan operatsion tizim muammosiz ishga tushadi. Hamma platformada bir xil ishlaydi.
JDK vs JRE vs JVM
#JDK #JRE #JVM #classloader #compilation
@Java_suhbat_savollari
π5
JVM
Java dasturlash tilini shu darajada rivojlanishiga, boshqa tillardan ustunlik berishi, va boshqa funksiyalari ...
JVM
Keyingi postlarda, class loader, java memory, garbage collector haqida, to'liqroq ko'ramiz
#JVM #thread #stack #heap #pcregister #interpretation
@Java_suhbat_savollari
Java dasturlash tilini shu darajada rivojlanishiga, boshqa tillardan ustunlik berishi, va boshqa funksiyalari ...
JVM
Keyingi postlarda, class loader, java memory, garbage collector haqida, to'liqroq ko'ramiz
#JVM #thread #stack #heap #pcregister #interpretation
@Java_suhbat_savollari
π4
Assalomu alaykum
Bugundan mavzularni yoritish bilan birgalikda, interviewda tushushishi mumkin bo'lgan savolllarga ham javob berib boramiz.
Inteview questions
Agar savollarga javoblarda topgan xatoliklaringizni, hozir yetib kelingan mavzular bo'yicha sizda ham savollar bo'lsa ulashsangizlar. Xursand bo'lamiz.
#inteview_question
Javani yangi o'rganayotganlar uchun
Interviewga tayyorlanayotganlar uchun
Bugundan mavzularni yoritish bilan birgalikda, interviewda tushushishi mumkin bo'lgan savolllarga ham javob berib boramiz.
Inteview questions
Agar savollarga javoblarda topgan xatoliklaringizni, hozir yetib kelingan mavzular bo'yicha sizda ham savollar bo'lsa ulashsangizlar. Xursand bo'lamiz.
#inteview_question
Javani yangi o'rganayotganlar uchun
Interviewga tayyorlanayotganlar uchun
π7
Immutable vs mutable
Interview questionga yangi qism qo'shildi.
Java interview questions
#immutable #mutable
Javani yangi o'rganayotganlar uchun
Interviewga tayyorlanayotganlar uchun
Interview questionga yangi qism qo'shildi.
Java interview questions
#immutable #mutable
Javani yangi o'rganayotganlar uchun
Interviewga tayyorlanayotganlar uchun
π4
String vs StringBuilder vs StringBuffer
Interview questionga yangi mavzu bo'yicha savol - javoblar qo'shildi.
Interview questions
Agar sizlarda ham yuqoridagi mavzular bo'yicha savollar bo'lsa, ularga ham javob berishga harakat qilamiz!
#string #stringbuilder #stringbuffer
Javani yangi o'rganayotganlar uchun
Interviewga tayyorlanayotganlar uchun
Interview questionga yangi mavzu bo'yicha savol - javoblar qo'shildi.
Interview questions
Agar sizlarda ham yuqoridagi mavzular bo'yicha savollar bo'lsa, ularga ham javob berishga harakat qilamiz!
#string #stringbuilder #stringbuffer
Javani yangi o'rganayotganlar uchun
Interviewga tayyorlanayotganlar uchun
π₯2π1
Kanalda qanday postlar bo'lishini hoxlaysiz.
Anonymous Poll
73%
Interview savollariga javoblar
27%
Mavzular bo'yicha ma'lumotlar
Java dasturlash tilida dastur ishga tushgan ma'lumot qanday ko'rinishda kirib kelishi mumkin?
Java dasturlash tilida, ma'lumotlarni yozish o'qish bilan java.io package'ida kerakli classlar mavjud. Ma'lumot kirishi ikki xil ko'rinishda bo'ladi?
1. Character stream
2. Byte stream
Character stream matn ko'rinishidagi ma'lumotlar bilan ishlash uchun moslangan. Matn ko'rinishidagi ma'lumotlar bilan byte stream bilan ham ishlash mumkin, lekin character streamda matn bilan ishlash uchun qo'shimcha metodlari mavjud.
Byte stream har qanday turdagi ma'lumot bilan ishlay oladi(matn, ovozli, rasm, ...).
Character stream bilan ishlovchi parent classlar:
@Java_suhbat_savollari
Java dasturlash tilida, ma'lumotlarni yozish o'qish bilan java.io package'ida kerakli classlar mavjud. Ma'lumot kirishi ikki xil ko'rinishda bo'ladi?
1. Character stream
2. Byte stream
Character stream: matn (text) ko'rinishidagi ma'lumotlar uchun ishlatiladiByte stream: dasturni ichiga kirishi va chiqishi (file system, database, socket, ...) mumkin bo'lgan barcha ma'lumot turlari bilan ishlaydi.Character stream matn ko'rinishidagi ma'lumotlar bilan ishlash uchun moslangan. Matn ko'rinishidagi ma'lumotlar bilan byte stream bilan ham ishlash mumkin, lekin character streamda matn bilan ishlash uchun qo'shimcha metodlari mavjud.
Byte stream har qanday turdagi ma'lumot bilan ishlay oladi(matn, ovozli, rasm, ...).
Character stream bilan ishlovchi parent classlar:
Reader: character stream orqali ishlaydi, matn ko'rinishidagi ma'lumotlarni o'qish uchun ishlatiladigan, abstract class. Bundan voris olgan qo'shimcha classlar postfix sifatida Reader qo'shimcha bo'ladi masalan: BufferedReaderWriter: character stream orqali ishlaydi, matn ko'rnishidagi ma'lumotlarni yozish uchun ishlatiladi, abstract class. Bundan voris olgan qo'shimcha class postfix sifatida Writer qo'shimcha bo'ladi masaan: FileWriterInputStream: byte stream orqali ishlaydi, har qanday turdagi ma'lumot turlarini o'qish uchun ishlatiladi, abstract class. Bundan voris olgan qo'shimcha class postfix sifatida InputStream qo'shimcha bo'ladi masaan: ObjectInputStreamOutputStream: byte stream orqali ishlaydi, har qanday turdagi ma'lumot turlarini yozish uchun ishlatiladi, abstract class. Bundan voris olgan qo'shimcha class postfix sifatida OutputStream qo'shimcha bo'ladi masaan: FileOutputStream@Java_suhbat_savollari
π₯3
Java core bo'yicha interview qilsak nima deysizlar?
Anonymous Poll
86%
Yaxshi bo'lardi
9%
Menga farqi yo'q
5%
Shart emas