Salom do’stlar! Java dasturlash tilida ko’pchilikni qiynashi mumkin bo’lgan 30 ta savollarga javob olamiz ushbu maqola davomida.
Quyida savollar ro’yxati berilgan, shu ro’yxatdagi bironta savol ustiga bosadigan bo’lsaniz, darhol javobni ko’rasiz.
Albatta bu ro’yxatdagi savol va javoblardan tashqari yana savollar bo’lishi mumkin sizda, u holda savolingizni kommentariyada qoldiring. Men esa shunday savollarni yig’ib ushbu maqola singari javoblar yana bir maqola chop etaman.
DIQQAT E’LON! Java dasturlash tillari bo’yisha video kurs tayyor. Video kurs haqidagi ma’lumotni quyidagi rasm ustiga bosib o’qishingiz mumkin:
- Javoblar bilan Top 30 java savollari
- Ichki sinfi va kichik sinf (sub-sinf) o’rtasidagi farq nima?
- Java sinflari uchun turli xil kirish identifikatorlari qanday?
- Statik metodlar va statik o’zgaruvchilarning maqsadi nima?
- Ma’lumotni encapsulation (ma’lumot to’plash-kapsullash) qilish nima va uning ahamiyati nimadan iborat?
- Singleton sinf nima? Foydalanishning amaliy namunasini keltiring.
- Java-dagi sikllar nima? Qanday uchta turdagi sikllar mavjud?
- Cheksiz sikl nima? Cheksiz sikl qanday e’lon qilinadi?
- Continue – davom etish va break – uzilishlar operatorlari orasidagi farq nima?
- Java’da final kalit so’z nima? Misol keltiring.
- Java-da tasodifiy sonlarni qanday yaratish mumkin?
- Default switch holat nima? Misol keltiring.
- Barcha sinflar olingan Java-ning asosiy klassi nima?
- Java’da main () metodi biron turdagi ma’lumotlarni qaytarishi mumkinmi?
- Java paketlari nima? Paketlarning ahamiyati qanday?
- Bironta abstrakt-mavhum metodga ega bo’lmasa ham, sinfni abstrakt deb e’lon qila olamizmi?
- Java-ning Abstract Class va Interface o’rtasidagi farq nima?
- Java-da, paketni import qilish, uning kichik paketlarini import qiladimi?
- Bizning sinfimizning main() metodini private deb e’lon qila olamizmi?
- Funktsiyaga argumentni qiymat bilan o’tkazish o’rniga referens orqali qanday qilib beramiz?
- Sinfning konstraktori qachon chaqiriladi?
- Sinf bir nechta konstruktorga ega bo’lishi mumkinmi?
- Java-da String ma’lumot turimi?
- Vektor va massiv o’rtasidagi farq nima?
- Multi-threading nima?
- Nima uchun Runnable interfeysi Javada ishlatiladi?
- main() metoddan oldin qanday kodni amalga oshirish mumkin?
- Bitta sinfda bir xil nomda ikkita metod bo’lishi mumkinmi?
- Merosdan foydalanishning foydasi nimada?
- Static metoddan non-statik-statik bo’lmagan metodni chaqirish mumkinmi?
- main() metod uchun void dan tashqari boshqa qaytaruvchi tur mavjudmi?
Javoblar bilan Top 30 java savollari
-
Ichki sinfi va kichik sinf (sub-sinf) o’rtasidagi farq nima?
Javob: Ans: Ichki sinf – boshqa sinf ichidagi ichki qism. Ichki sinf tashqi klassdagi barcha o’zgaruvchilar va metodlarga kirish imkoniyatiga ega.
Sub sinf, super sinf deb nomlangan boshqa sinfdan meros bo’lib olinadigan sinfdir. Sub-klass barcha public va protected metodlarga va uning super-sinfiga kira oladi.
-
Java sinflari uchun turli xil kirish identifikatorlari qanday?
Javob: Java’da kirish identifikatorlari kirish ko’lamini belgilaydigan sinf nomidan oldin ishlatiladigan kalit so’zlardir. Sinflar uchun kirish identifikatorlari turlari quyidagilar:
- public-umumiy: Sinf, metod va sohaga har qanday joydan kirish mumkin.
- protected-himoyalangan: Metod, sohaga ular tegishli bo’lgan yoki sub sinflardan va bir xil paketning sinfidan kirish mumkin, lekin tashqaridan emas.
- Default: Metod, soha, sinfga faqat o’sha paketdan kirish mumkin, lekin uning paketi tashqarisidan emas.
- private-xususiy: Metod, sohaga ular tegishli bo’lgan sinfdan kirish mumkin.
-
Statik metodlar va statik o’zgaruvchilarning maqsadi nima?
Javob: Har bir obyekt uchun alohida nusxa yaratish o’rniga, sinfning bir nechta obyektlari o’rtasida metodni yoki o’zgaruvchini almashish talabi mavjud bo’lganda, metod va o’zgaruvchilarni barcha obyektlar uchun almashinishini hosil qilish maqsadida statik deb e’lon qilamiz.
-
Ma’lumotni encapsulation (ma’lumot to’plash-kapsullash) qilish nima va uning ahamiyati nimadan iborat?
Kapsullash, bir birlikda xususiyatlar va metorlarni birlashtirish uchun Obyektga asoslangan dasturlash tushunchasi.
Enkapsulyatsiya dasturchilar dasturiy ta’minot ishlab chiqish uchun modulli yondashuvga amal qilishiga yordam beradi, chunki har bir ob’ekt o’z metod va parametrlarga ega. Kapsullama, shuningdek, ma’lumotlarni yashirish maqsadiga xizmat qiladi.
-
Singleton sinf nima? Foydalanishning amaliy namunasini keltiring.
Java dasturida bitta singleton klassi faqat bitta namunaga ega bo’lishi mumkin, shuning uchun barcha metodlar va o’zgaruvchilar bitta namunaga tegishli. Singleton sinf kontseptsiyasi sinf uchun obyektlarning sonini cheklash zarur bo’lgan holatlarda foydalidir.
Singleton foydalanish stsenariyasining eng yaxshi namunasi, ba’zi drayverlarning cheklashlari yoki litsenziyalash muammolari sababli ma’lumotlar bazasiga faqat bitta ulanishga ega bo’lish chegarasi bo’lib qolishi.
-
Java-dagi sikllar nima? Qanday uchta turdagi sikllar mavjud?
Javob: Sikllar – Looping dasturni ijro qilish yoki ijro qilish blokini bir necha marta bajarish uchun ishlatiladi. Java-da uchta turda sikl mavjud:
1) For sikl operator
For sikl operatori java-da bayonotlarni bir necha marta ketma-ket bajarish uchun ishlatiladi. For sikli bayonotlarning amalga oshirilish soni dasturchiga ma’lum bo’lgan foydalaniladi.
2) While sikl operator
Ayrim bayonotlar shart bajarilgunga qadar takroriy ijro etilishi kerak bo’lganda while sikl ishlatiladi. While siklida, vaziyat birinchi marta bayonlarning bajarilishidan oldin tekshiriladi.
3) Do_while sikl operator
Do While va While deyarli teng bo’lsa-da, bu holda faqat shartlar bloklari bajarilganidan keyin tekshiriladi. Shunday ekan, do while operatorida, bayonotlar kamida bir marta bajariladi.
-
Cheksiz sikl nima? Cheksiz sikl qanday e’lon qilinadi?
Javob: Cheksiz sikl hech qanday shartsiz ishlaydi va cheksiz ishlaydi. Cheksiz siklni bayonot blokining tanasidagi logik sinishni aniqlash orqali to’xtatish mumkin.
Cheksiz sikl quyidagi tarzda e’lon qilinadi:
for (;;)
{
// Amalga oshirish uchun bayonot
// sikldan chiquvchi logika qo’shish
}
-
Continue – davom etish va break – uzilishlar operatorlari orasidagi farq nima?
Javob: break va continue siklda ishlatiladigan ikkita muhim kalit so’z. Siklda break ishlatilganda, sikl darrov sinadi ya’ni ishlash sikldan chiqib ketadi, continue kalit so’zi ishlatilganda, joriy iteratsiya buziladi va sikl keyingi iteratsiya bilan davom etadi.
Quyidagi misolda, taymer 4 ga yetganda, sikl buziladi.
for (taymer = 0; taymer < 10; taymer++){
System.out.println(taymer);
if (taymer == 4)
{
break;
}
}
Quyidagi misolda taymer 4 ga yetganda, continue kalit so’zi joriy iteratsiya uchun skip (tashlab o’tib ketish) qilinganidan keyin, sikl keyingi iteratsiyaga o’tadi.
for (taymer = 0; taymer < 10; taymer++) {
System.out.println(taymer);
if (taymer == 4)
{
continue;
}
System.out.println(«Taymer 4 ga teng bo’lgan, ekranga chiqmaydi»);
}
-
Java’da final kalit so’z nima? Misol keltiring.
Javob: Java-da, final kalit so’zidan foydalanib, konstanta (o’zgarmas) parameterlar e’lon qilinadi. Qiymatni faqat bir marta tayinlash mumkin va tayinlashdan so’ng tayinlash mumkin, qiymati o’zgarmasdir.
Quyidagi misolda const_val nomi bilan bir konstanta e’lon qilinadi va bir qiymat tayinlanadi:
private final int const_val = 100;
Agar metod final deb e’lon qilingan bo’lsa, u subclasslar tomonidan bekor qilinmaydi. Ushbu metod boshqa har qanday metoddan tezroq.
Agar sinf final deb e’lon qilinsa, u subclassga ega bo’la olmaydi.
-
Java-da tasodifiy sonlarni qanday yaratish mumkin?
Javob:
- random () dan foydalanish yordamida, siz 0,1 dan kattaroq yoki teng va 1.0 gacha bo’lgan oraliqda tasodifiy sonlarni yaratishingiz mumkin
- util paketidagi tasodifiy sinfdan foydalanish orqali
-
Default switch holat nima? Misol keltiring.
Javob: switch tanlash operatorida, default holat boshqa switch holati mos bo’lmasa bajariladi. Default holat ixtiyoriy holat hisoblanadi. U faqat bir marta e’lon qilinishi mumkin.
Quyidagi misolda, ball 1 yoki 2 bo’lmasa, default hol ishlatiladi.
public class switchMisol {
int skore = 4;
public static void main(String args[]) {
switch (skore) {
case 1: System.out.println(«Skore 1»); break;
case 2: System.out.println(«Skore 2»); break;
default: System.out.println(«Default holat»);
}
}
}
-
Barcha sinflar olingan Java-ning asosiy klassi nima?
Javob: java.lang.object
-
Java’da main () metodi biron turdagi ma’lumotlarni qaytarishi mumkinmi?
Javob: Java-da, main () metodi hech qanday ma’lumotni qaytarib bera olmaydi, chunki u har doim void qaytaruvchi tur bilan e’lon qilinadi.
-
Java paketlari nima? Paketlarning ahamiyati qanday?
Javob: Java-da, paketlar birlashtirilgan sinflar va interfeyslar to’plami. Paketlardan foydalanish ishlab chiquvchilarga kodni modulyatsiyalashga yordam beradi va kodni qayta ishlatish uchun guruhlashga yordam beradi. Paketlarda kodlar paketlanganidan keyin u boshqa sinflarga kiritilishi va ishlatilishi mumkin.
-
Bironta abstrakt-mavhum metodga ega bo’lmasa ham, sinfni abstrakt deb e’lon qila olamizmi?
Javob: Ha, abstract kalit so’zidan foydalanib mavhum bir sinf yaratishimiz mumkin hatto u bironta abtrakt-mavhum metodga ega bo’lmasa ham. Biroq, agar sinfda bir mavhum metod bo’lsa, u mavhum ya’ni abstract deb e’lon qilinishi kerak, aks holda bu xato bo’ladi.
-
Java-ning Abstract Class va Interface o’rtasidagi farq nima?
Javob: Abstrakt sinf va interfeys o’rtasidagi asosiy farq shundaki, interfeys faqat public static metodlarni amalga oshirishsiz e’lon qiladi xolos, ammo mavhum-abstract sinfda aniq amaliyotga ega bo’lgan yoki bo’lmagan holda, foydalanishga ruxsat beruvchi (public, private va h.k.) a’zolar bo’lishi mumkin.
Mavhum (abstract) sinflar va interfeyslarni ishlatishdagi yana bir muhim farq shundaki, interfeysni amalga oshiruvchi sinf interfeysning barcha metodlarini qo’llashi kerak, ammo mavhum bir sinfdan meros bo’lib o’tadigan sinf o’zlarining super sinfining barcha metodlarini qo’llashi talab qilmaydi.
Sinf bir nechta interfeyslarni amalga oshirishi mumkin, biroq faqat bitta mavhum sinfni uzaytirishi mumkin.
-
Java-da, paketni import qilish, uning kichik paketlarini import qiladimi?
Javob: Java-da, agar paket import qilinadigan bo’lsa, uning quyi paketlari import qilinmaydi va agar kerak bo’lsa, ularni dasturchini o’zi alohida import qilishi kerak.
Misol uchun, agar ishlab chiquvchi-dasturchi “universitet.*,” nomli paketni import qilsa *, universitet nomi yozilgan paketdagi barcha sinflar yuklanadi, lekin sub-paketdan hech qanday sinf yuklanmaydi. Sinflarni kichik paketlardan (masalan, bo’lim) yuklash uchun ishlab chiquvchi uni quyidagicha aniq tarzda import qilish kerak:
Import universitet.bo’lim.*;
-
Bizning sinfimizning main() metodini private deb e’lon qila olamizmi?
Javob: Java’da main() metod har qanday dasturni to’g’ri ishlashi uchun public static bo’lishi kerak. Agar main() metod private deb e’lon qilingan bo’lsa, dasturchi hech qanday kompilyatsiya xatolikka ega bo’lmaydi, ammo bajarilmaydi va ish vaqti xatoligi beradi.
-
Funktsiyaga argumentni qiymat bilan o’tkazish o’rniga referens orqali qanday qilib beramiz?
Javob: Java-da biz argumentni funktsiyaga faqat qiymat orqali beramiz, referens orqali emas.
-
Sinfning konstraktori qachon chaqiriladi?
Javob: Obyekt new kalit so’z bilan yaratilganda, sinfning konstruktori chaqiriladi.
Masalan, quyidagi sinfda new kalit so’z yordamida ikkita obyekt yaratiladi va shuning uchun konstruktor ikki marta chaqiriladi.
public class konstraktor_namuna {
konstraktor_namuna() {
System.out.println(«Konstraktor»);
}
public static void main(String args[]) {
konstraktor_namuna c1 = new konstraktor_namuna ();
konstraktor_namuna c2 = new konstraktor_namuna ();
}
}
-
Sinf bir nechta konstruktorga ega bo’lishi mumkinmi?
Javob: Ha, sinfda turli parametrlarga ega bo’lgan ko’plab konstruktorlar bo’lishi mumkin. O’byekt yaratilishida qaysi konstruktor ishlatilishi obyektlarni yaratishda berilgan argumentlarga bog’liq.
-
Java-da String ma’lumot turimi?
Javob: String javada primitiv ma’lumot turi emas. Javada bironta String yaratilganida, u aslida yaratilgan Java.Lang.String sinfining obyektidir. Ushbu string obyektini yaratganingizdan so’ng, string sinfidagi barcha yaratilgan metodlar string obyektida foydalanish mumkin.
-
Vektor va massiv o’rtasidagi farq nima?
Javob: Massiv bir xil turdagi ma’lumot turlarini guruhlarga ajratadi va statik xususiyatga ega, Vektor esa dinamik xususiyatga ega bo’lib, u turli xil ma’lumot turlarini o’zida to’play oladi.
-
Multi-threading nima?
Javob: Multi threading bitta dasturda bir vaqtning o’zida bir nechta vazifalarni bajarish uchun dasturiy tushunchadir. Threadlar bir xil jarayonni bo’lishadi va parallel ravishda ishlaydi. Bu har qanday dasturning ish faoliyatini yaxshilashga yordam beradi.
-
Nima uchun Runnable interfeysi Javada ishlatiladi?
Javob: Runnable interfeysi Java-da multi threadni amalga oshirish uchun ishlatiladi. Java.Lang.Runnable interfeysi multi threadni qo’llab-quvvatlash uchun sinf tomonidan amalga oshiriladi.
-
main() metoddan oldin qanday kodni amalga oshirish mumkin?
Javob: Agar sinfning yuklanish vaqtida obyektlarni yaratishdan oldin har qanday bayonotni bajarishni istasak, sinfda statik bloklar blokidan foydalanishimiz mumkin. Ushbu statik blok kod ichidagi har qanday iboralar, main() metodda narsalar yaratilishidan oldin sinfni yuklash vaqtida bir marta bajariladi.
-
Bitta sinfda bir xil nomda ikkita metod bo’lishi mumkinmi?
Javob: Bir xil nomdagi, lekin turli xil raqamlar / parametrlarga ega bo’lgan ikkita metodni bir sinf ichida aniqlab olishimiz mumkin. Qaysi metod chaqirilishliligi yuborilayotgan parameterlarga bog’liq bo’ladi.
Misol uchun, quyida keltirilgan sinfda biz bir xil nom bilan,lekin turli xil parametrlarga ega bo’lgan ikkita metodga egamiz. Parametrlarga qarab, mos keladigani chaqiriladi:
public class metodNamuna {
public void print() {
System.out.println(«Parametersiz metod.»);
}
public void print(String name) {
System.out.println(«Parameterli metod»);
}
public static void main(String args[]) {
metodNamuna obj1 = new metodNamuna();
obj1.print();
obj1.print(«xx»);
}
}
-
Merosdan foydalanishning foydasi nimada?
Javob: Merosdan foydalanishning asosiy afzalligi – kodning qayta foydalanish mumkin bo’lishi, meros sifatida pastki-sub sinflarga o’zlarining yuqori-super sinf kodini qayta ishlatilishini ta’minlaydi. Polimorfizm (Extensibility-kengayish) – hosil qilingan mavjud sinflarga ta’sir qilmasdan yangi funksiyalarni ishlatish imkonini beradigan yana bir katta foyda.
-
Static metoddan non-statik-statik bo’lmagan metodni chaqirish mumkinmi?
Javob: Statistik bo’lmagan metodlar sinfi obyektlariga tegishli va statik blokdan statik bo’lmagan metodlarni chaqirish uchun (static main() metodi singari) avval sinf obyekti yaratilishi kerak. Keyinchalik obyekt referensidan foydalanib, ushbu metodlarni chaqirish mumkin.
-
main() metod uchun void dan tashqari boshqa qaytaruvchi tur mavjudmi?
Javob: Yo’q, main metod dasturni muvaffaqiyatli bajarish uchun faqat void qaytish turiga ega bo’lishi mumkin.
Shunga qaramay, agar siz asosiy metodni bajarish vaqtida qiymatni qaytarishingiz kerak bo’lsa, System.exit (int status)-dan foydalanishingiz mumkin.
O’ylaymanki savollarga aniq javob oldingiz, ba’zi tushunmagan qismingiz bo’lsa savolingizni qoldiring, imkonim boricha javob berishga harakat qilaman.
Shunday qilib sizlar bilan xozircha xayrlashamiz, keyingi maqolada korishguncha.
Muallif: Oxunjon G’aybullayev