logo
post image
user image

DIGITAL GENERATION

Muallif

July 11, 2024

181

Java - Job interview Questions and Answers

Java

Encapsulation: obyektning xususiyatlari har xil dasturiy o'zgaruvchilardan iborat bo'ladi va ularning o'zgartirish uchun qandaydir funksiyalar bajariladi. Bunday funksiyalar bilan o'zgaruvchilarning holatini berkitish mumkin ya'ni aynan o'sha o'zgaruvchini tashqaridan o'zgartirish uchun albatta maxs

  1. Javada qanday access modifierlar bor?

  • public loyihani (projectni) istalgan joyida foydalanish mumkin.

  • protected paketi umumiy bo'lgan va inheritance orqali bogʻlangan har qanday class uchun kirish huquqini beradi.

  • default (modifikator sifatida belgilanmagan) bir xil paket classlari tomonidan foydalanish mumkin.

  • private faqat bitta class foydalanish mumkin.

  1. Nima uchun Java 100% obyektga yo'naltirilgan emas?

Java 100% obyektga yo'naltirilgan emas chunki javada primitive data types, static keyword va wrapper class lar mavjud. Shuning uchun java 100% obyektga yo'naltirilgan dasturlash tili emas.

  1. Obyektga yo'naltirilgan dasturlash (OOP) nima va uning asosiy tamoyillari qanday?
  • Encapsulation: obyektning xususiyatlari har xil dasturiy o'zgaruvchilardan iborat bo'ladi va ularning o'zgartirish uchun qandaydir funksiyalar bajariladi. Bunday funksiyalar bilan o'zgaruvchilarning holatini berkitish mumkin, ya'ni aynan o'sha o'zgaruvchini tashqaridan o'zgartirish uchun albatta maxsus funksiyadan foydalanish kerak bo'ladi.

  • Inheritance: Ma'lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bunda obyektning barcha xususiyatlarini meros qilib oladi, ya'ni private (shaxsiy) bo'lmagan o'zgaruvchilari funksiyalari konstantalaridan bemalol foydalanish. Inheritancedan runtime polymorphismda foydalaniladi.

  • Polymorphism: OOPning uchinchi ustuni. Yuqorida berilgan ustunlar bilan doim birga yuradi. Ma'lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bir classning boshqa classdan meros olishi yordamida amalga oshiriladi. Meros olingan obyekt ota obyektdagi xususiyatlarni tanlovga ko'ra meros oladi. Masalan, avtoulov bu ota obyekt. Bu obyekt yordamida yengil mashina, yuk mashinasi, poyga mashinasi kabi boshqa obyektlarni yaratib olishimiz mumkin. Ota classda bo'lgan 4 g'ildirak bola classlarda ham mavjud bo'ladi. Ya'ni poyga mashinasi, avtoulovdan g'ildiraklarni meros oladi.

  • Abstraction: Muhim xususiyatlarni ifodalash va keraksiz tafsilotlarni yashirish orqali murakkab tizimlarni soddalashtirish.

  1. Javada class va obyekt o'rtasidagi farq nima?

Javada class — bu obyektlarning tuzilishi, xatti-harakati va xususiyatlarini belgilaydigan loyiha yoki shablon. U obyektlarning namunalarini yaratish uchun reja bo'lib xizmat qiladi. Boshqa tomondan, obyekt classning namunasidir. U yaratilgan classga asoslangan holda o'z holati va xatti-harakatiga ega bo'lgan muayyan obyektni ifodalaydi.

  1. Javada konstruktorlar nima?

Javada konstruktordan classning instance ni yaratish uchun ishlatiladi. Konstruktor methodga o'xshaydi faqat 2 ta xususiyatidan tashqari:

  1. konstruktor nomi class nomi bilan bir xil bo'lishi kerak,
  2. konstruktor qiymat qaytarmaydi.

Ba'zan konstruktor obyektni ishga tushirish uchun maxsus method deb ham ataladi.

  1. Javada equals() va == o'rtasidagi farq nima?

"==" bu binary operator.

equals() methodi obyektlarni bir-biri bilan solishtiradi.

  1. Javada "super kalit so'z" nima?

"Super kalit so'zi" yuqori parent class obyektlariga ishora qiladi. U superclass methodlarini chaqirish va superclass konstruktoriga kirish uchun ishlatiladi. Super kalit so'zining eng keng tarqalgan qo'llanilishi bir xil nomdagi methodlarga ega bo'lgan yuqori va kichik classlar o'rtasidagi chalkashlikni bartaraf etishdir.

  1. Javada "final kalit so`zi" qaysi maqsadda ishlatiladi?

O`zgarmas qiymatlarni yaratishda ishlatiladi.

  1. Class loader nima?

Javada class loader .class file ni JVMga load qilish (yaʼni fayldan JVM orqali foydalanish) uchun ishlatiladi.

  1. Java-da xotirani taqsimlash usullari qanday?
  • Class Memory
  • Heap Memory
  • Stack Memory
  1. Methodni static public void main() qilsak dastur ishga tushadimi?

Ha, chunki javada o'ziga xos xususiyatlarga amal qilinmaydi.

  1. ORM nima:

Object Relational Mapping: Database dagi table larni javadagi obyektlar bilan mutanosib holda ishlatish uchun maxsus tool.

  1. JPA nima:

Java Persistens API

  • Java buyruqlarini haqiqiy SQL so'roviga o'zgartiradi.
  • crudRep.findByID(2) -> ID=2 bo'lgan foydalanuvchilardan 1 ni tanlang.
  1. n+1 muammosi nima?

N+1 so'rov muammosi ma'lumotlar bazasini qidirishdagi muammo bo'lib, unda obyektning tegishli obyektlari ma'lumotlar bazasidan alohida so'raladi va O(n) so'rovlariga olib keladi, bu yerda n — obyektning tegishli obyektlari soni.

  1. Solid prinsiplari nima?
  • Single Responsibility: class faqat bitta masʼuliyatga ega bo'lishi kerak misol uchun student class faqat student methodlariga javob beradi lekin teacher methodlariga javob bermaydi.
  • Open/Closed: class ga qo'shimchalar qo'shishga ochiq lekin oldin yozilgan kodlarni o'zgartirishga yopiq.
  • Liskov Substitution: Kodimizgda hech qanday o'zgartirish kiritmasdan, ularning Parent (yuqori) classlarini o'rniga Inheritance (pastki) classlardan foydalanishimiz mumkin bo'lishi kerak.
  • Interface Segregation: interfeyslarga bo'lish tamoyili, hamma holat uchun umumy bo'lgan interfeysdan, har bir mijoz uchun alohida bo'lgan ko'plab interfeyslar yaxshi. Vaqt o'tishi bilan Sizning loyihangiz kengayadi, unga yangi funksiyalar, imkoniyatlar qo'shiladi. Bunda, loyiha boshidan loyiha strukturasi ustidan kuchli nazorat olib borilmasa, loyiha boshida aniq bir funksiyani bajaruvchi metodlar, loyiha oxiriga borib umuman boshqa vazifani bajarishi mumkin.
  • Dependency Inversion: classlar orasidagi muhtojliklar imkon qadar past bo'lishi kerak, ayniqsa yuqori darajadagi classlar quyi darajadagi classlarga muhtoj bo'lmasligi kerak.
  1. DDD arxitekturasi nima?

Domenga asoslangan dizayn arxitekturasi. Bu software design arxitekturada dasturiy ta'minotni yuqoridan pastga qarab ko'rib chiqish usuli.

  1. Collection nima?

Javada collection bu obyektlar guruhini saqlash va boshqarishni ta'minlovchi java frameworki bo'lib. U List, Set, Map va Queue kabi har xil turdagi maʼlumotlar tuzilmalarini boshqarish uchun yagona interfeys.

  1. Java-da ArrayList va LinkedList o'rtasidagi farqlar.

ArrayList va LinkedList ikkala List interfeysidan implement oladi. Ularning asosiy farqi shundaki, ArrayList massiv bilan, LinkedList esa bog'langan ro'yxat (linked list) bilan ishlaydi. ArrayList elementlarga tezkor kirishni ta'minlaydi, lekin yozish va o'chirish operatsiyalari sekinroq amalga oshiradi. LinkedList esa tezkor yozish va o'chirish operatsiyalarini bajaradi, lekin sekinroq qidiradi.

  1. HashSet va TreeSet o'rtasidagi farq.

HashSet va TreeSet ikkala Set interfeysidan implement oladi. Ikkalasi o'rtasidagi asosiy farq shundaki, HashSet elementlarni

Izohlar