JavaRush /Java blogi /Random-UZ /21-daraja. Daraja mavzusi bo'yicha suhbat savollariga jav...
zor07
Daraja
Санкт-Петербург

21-daraja. Daraja mavzusi bo'yicha suhbat savollariga javoblar

Guruhda nashr etilgan
21-daraja. Daraja mavzusi bo'yicha suhbat savollariga javoblar - 1
  1. Sinf usullarini sanab o'tingObject

    • equals()
    • hashCode()
    • toString()
    • getClass()
    • notify()
    • notifyAll()
    • wait()
    • wait(long timeOut)
    • wait(long timeOut, int nanos)
  2. equalsNima uchun & usullar kerak hashCode?

    Ob'ektlarni solishtirish uchun ishlatiladi.

    Usulning maqsadi equals- ob'ektlarning ichki tarkibini solishtirish orqali ob'ektlarning ichki jihatdan bir xilligini aniqlash. Bu equalssekin ishlaydi, avval ob'ektlarning xesh kodlari taqqoslanadi va agar xesh kodlari teng bo'lsa, tekshiriladi.equals

  3. Tenglarni bekor qilsangiz, lekin bekor qilmasangiz nima bo'ladi hashCode?

    Dastlab hashCode, tasodifiy raqam.

    Java-dagi to'plamlar har doim dan foydalanib ob'ektlarni solishtirishdan oldin equalsularni izlaydi/taqqoslaydi hashCode(). Va agar bir xil ob'ektlar har xil bo'lsa hashCode, u holda ob'ektlar boshqacha ko'rib chiqiladi - ularni ishlatish bilan taqqoslab bo'lmaydi equals.

  4. Nima uchun usullar wait, notify, notifyAll?

    Ba'zida dasturda ip kod blokiga kirib synchronized, monitorni bloklab qo'ygan va keyingi ishlay olmaydigan vaziyat bo'lishi mumkin, chunki ba'zi ma'lumotlar hali ham etishmayapti: masalan, uni qayta ishlash kerak bo'lgan fayl hali yuklanmagan yoki shunga o'xshash narsa. Ushbu muammoni hal qilish uchun usul ixtiro qilindi wait(). Ushbu usulni chaqirish ipning monitorni bo'shatishiga va "pauza" ga olib keladi.

    To'xtatish uchun usullar qo'llaniladi notify. notifyAllUsul notifybitta tasodifiy ipni "muzdan chiqaradi", usul notifyAll- berilgan monitorning barcha "muzlatilgan" iplarini.

  5. Ob'ektni qanday qilib to'g'ri klonlash mumkin?

    Klonlashning ikki turi.

    Standart obyektni klonlash uchun:

    • CloneableSinfingizga interfeys qo'shing
    • Usulni bekor qiling cloneva undagi asosiy dasturni chaqiring:
    class Point implements Cloneable
    {
     int x;
     int y;
    
     public Object clone()
     {
      return super.clone();
     }
    }

    Yoki usulni amalga oshirishni cloneo'zingiz yozishingiz mumkin:

    class Point
    {
     int x;
     int y;
    
     public Object clone()
     {
      Point point = new Point();
      point.x = this.x;
      point.y = this.y;
      return point;
     }
    }
  6. Usul nima uchun kerak finalize()va u qanday ishlaydi?

    Esingizda bo'lsa, bu finalize()axlat yig'uvchi uni yo'q qilishdan oldin ob'ektga chaqiriladigan maxsus usul.

    Ushbu usulning asosiy maqsadi foydalanilgan tashqi Java bo'lmagan resurslarni chiqarishdir: fayllarni yopish, kiritish-chiqarish oqimlari va boshqalar.

    finalize()beqaror ishlaydi.

    Bu usul unga qo'yilgan umidlarni oqlamaydi. Java mashinasi ob'ektni yo'q qilishni, shuningdek, usulning chaqiruvini finalizexohlagancha kechiktirishi mumkin. Bundan tashqari, bu usul umuman chaqirilishiga kafolat bermaydi. Ko'pgina hollarda, "optimallashtirish" uchun u chaqirilmaydi.

  7. Farqi nimada final, finally, finalize?

    • final- modifikator
    • Maydonlarni o'zgartirib bo'lmaydi, usullar bekor qilingan
    • Sinflarni meros qilib bo'lmaydi
    • Ushbu modifikator faqat sinflar, usullar va o'zgaruvchilar uchun amal qiladi (shuningdek, mahalliy o'zgaruvchilar)
    • Usul argumentlari faqat o'qish uchun belgilangan final; ularni o'zgartirishga urinish kompilyatsiya xatosiga olib keladi.
    • Переменные final не инициализируются по умолчанию, им необходимо явно присвоить meaning при объявлении or в конструкторе, иначе – ошибка компиляции
    • Если final переменная содержит ссылку на an object, an object может быть изменен, но переменная всегда будет ссылаться на тот же самый an object
    • Также это справедливо и для массивов, потому что массивы являются an objectми, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив
    • Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции
    • Так How final класс не может наследоваться, его методы никогда не могут быть переопределены

    finally — блок в связке try-catch-finally, code в котором выполнится независимо от того вылетело ли исключение в блоке try or нет. Используется для освобождения ресурсов.

    finalize — метод в классе Object см 6.

  8. What такое try-with-resources?

    Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются an objectы. Эти an objectы можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось or было исключение, для an object, созданного внутри круглых скобок (), будет вызван метод close();

  9. Чем отличаются методы wait(1000) и sleep(1000)?

    sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE

    wait() меняет состояние потока на WAITING

    может быть вызвано только у an object владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку . в случае wait(int) с аргументом состояние будет TIMED_WAITING

  10. В чем отличие i++ и ++i?

    • ++i, i сначала увеличивается на 1, затем участвует в выражении.
    • i++, i сначала участвует в выражении, затем увеличивается на 1.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION