JavaRush /Java блогу /Random-KY /21-деңгээл. Деңгээлдеги тема боюнча интервью суроолоруна ...
zor07
Деңгээл
Санкт-Петербург

21-деңгээл. Деңгээлдеги тема боюнча интервью суроолоруна жооптор

Группада жарыяланган
21-деңгээл. Деңгээлдин темасы боюнча интервью суроолоруна жооптор - 1
  1. Класстын ыкмаларын тизмектеңизObject

    • equals()
    • hashCode()
    • toString()
    • getClass()
    • notify()
    • notifyAll()
    • wait()
    • wait(long timeOut)
    • wait(long timeOut, int nanos)
  2. equalsЭмне үчүн жана методдор керек hashCode?

    Объекттерди салыштыруу үчүн колдонулат.

    Методдун максаты equals- an objectтердин ички мазмунун салыштыруу аркылуу an objectилердин ички окшоштугун аныктоо. Бул equalsжай иштейт, адегенде an objectтердин хэш codeдору салыштырылат жана хэш codeдору бирдей болсо, текшерүү жүргүзүлөт.equals

  3. Эгер барабарларды жокко чыгарсаңыз, бирок жокко чыгарбасаңыз эмне болот hashCode?

    Башында hashCode, кокустук сан.

    Javaдагы коллекциялар ар дайым an objectтерди салыштыруудан мурун equalsметодду колдонуп издешет/салыштырат hashCode(). Ал эми бирдей an objectилер ар кандай болсо hashCode, анда an objectтер башка болуп эсептелет - аларды колдонуу менен салыштыруу мүмкүн эмес equals.

  4. Эмне үчүн методдор wait, notify, notifyAll?

    Кээде программада жип code блогуна кирип synchronized, мониторду бөгөттөп, андан ары иштей албай турган жагдай болушу мүмкүн, анткени кээ бир маалыматтар дагы эле жок: мисалы, ал иштете турган файл али жүктөлө элек же ушуга окшош. Бул маселени чечүү үчүн бир ыкма ойлоп табылган wait(). Бул ыкманы чакыруу жипти мониторду бошотууга жана "тынымга" алып келет.

    Тыныгуу үчүн ыкмалар колдонулат notify. notifyAllМетод notifyбир кокус жипти "тоңдурат", метод notifyAll- берилген монитордун бардык "тоңдурулган" жиптерин.

  5. Объектти кантип туура клондосо болот?

    Клондоштуруунун эки түрү.

    Демейки an objectти клондоо үчүн:

    • CloneableКлассыңызга интерфейс кошуңуз
    • Методду жокко чыгарып clone, андагы негизги ишке ашырууну чакырыңыз:
    class Point implements Cloneable
    {
     int x;
     int y;
    
     public Object clone()
     {
      return super.clone();
     }
    }

    Же ыкманы ишке ашырууну cloneөзүңүз жаза аласыз:

    class Point
    {
     int x;
     int y;
    
     public Object clone()
     {
      Point point = new Point();
      point.x = this.x;
      point.y = this.y;
      return point;
     }
    }
  6. Бул ыкма эмне үчүн керек finalize()жана ал кантип иштейт?

    Эсиңизде болсо, бул finalize()таштанды жыйноочу аны жок кылганга чейин an objectке чакырылган атайын ыкма.

    Бул методдун негизги максаты колдонулган тышкы Java эмес ресурстарды чыгаруу: файлдарды жабуу, киргизүү/чыгаруу агымдары ж.б.

    finalize()туруксуз иштейт.

    Бул ыкма ага коюлган күтүүлөрдү актаbyte. Java машинасы an objectтин жок кылынышын, ошондой эле методдун чакырылышын finalizeкаалаганча кечиктире алат. Анын үстүнө, бул ыкма такыр чакырылат деп кепилдик бербейт. Көптөгөн жагдайларда, "оптималдаштыруу" үчүн ал чакырылbyte.

  7. Кандай айырма бар final, finally, finalize?

    • final- өзгөрткүч
    • Талааларды өзгөртүү мүмкүн эмес, ыкмалар жокко чыгарылды
    • Класстарды мурастоого болбойт
    • Бул өзгөрткүч класстарга, ыкмаларга жана өзгөрмөлөргө (ошондой эле жергorктүү өзгөрмөлөргө) тиешелүү.
    • Метод аргументтери окуу үчүн гана деп белгиленген final; аларды өзгөртүү аракети компиляция катасына алып келет.
    • Переменные 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.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION