JavaRush /Java Blog /Random-TL /Antas 21. Mga sagot sa mga tanong sa panayam sa antas ng ...
zor07
Antas
Санкт-Петербург

Antas 21. Mga sagot sa mga tanong sa panayam sa antas ng paksa

Nai-publish sa grupo
Уровень 21. Ответы на вопросы к собеседованию по теме уровня - 1
  1. Maglista ng mga pamamaraan ng klaseObject

    • equals()
    • hashCode()
    • toString()
    • getClass()
    • notify()
    • notifyAll()
    • wait()
    • wait(long timeOut)
    • wait(long timeOut, int nanos)
  2. equalsBakit kailangan at mga pamamaraan hashCode?

    Ginagamit upang ihambing ang mga bagay.

    Ang layunin ng pamamaraan equalsay upang matukoy kung ang mga bagay ay panloob na magkapareho sa pamamagitan ng paghahambing ng mga panloob na nilalaman ng mga bagay. Ito equalsay gumagana nang mabagal, una ang mga hash code ng mga bagay ay inihambing, at kung ang mga hash code ay pantay, ang isang pagsusuri ay ginawa laban saequals

  3. Ano ang mangyayari kung i-override mo ang katumbas ngunit hindi i-override hashCode?

    Sa una hashCode, isang random na numero.

    equalsAng mga koleksyon sa Java ay palaging hinahanap/ikumpara ang mga ito gamit ang pamamaraan bago ihambing ang mga bagay gamit ang hashCode(). At kung magkaiba ang magkaparehong mga bagay hashCode, ituturing na magkaiba ang mga bagay - hindi ito posibleng paghambingin gamit ang mga ito equals.

  4. Bakit ang mga pamamaraan wait, notify, notifyAll?

    Minsan ang isang programa ay maaaring magkaroon ng isang sitwasyon kung saan ang isang thread ay nagpasok ng isang bloke ng code synchronized, hinarangan ang monitor, at hindi maaaring gumana nang higit pa, dahil ang ilang data ay nawawala pa rin: halimbawa, ang file na dapat nitong iproseso ay hindi pa nalo-load o katulad nito. Isang paraan ang naimbento upang malutas ang problemang ito wait(). Ang pagtawag sa paraang ito ay nagiging sanhi ng thread na ilabas ang monitor at "i-pause".

    Upang i-unpause, ginagamit ang mga pamamaraan notify. notifyAllAng pamamaraan ay notify"nag-unfreeze" ng isang random na thread, ang pamamaraan notifyAll- lahat ng "frozen" na mga thread ng isang naibigay na monitor.

  5. Paano i-clone nang tama ang isang bagay?

    Dalawang uri ng cloning.

    Upang i-clone ang isang default na bagay:

    • Magdagdag ng interface Cloneablesa iyong klase
    • I-override ang pamamaraan cloneat tawagan ang batayang pagpapatupad dito:
    class Point implements Cloneable
    {
     int x;
     int y;
    
     public Object clone()
     {
      return super.clone();
     }
    }

    O maaari mong isulat ang pagpapatupad ng pamamaraan clonesa iyong sarili:

    class Point
    {
     int x;
     int y;
    
     public Object clone()
     {
      Point point = new Point();
      point.x = this.x;
      point.y = this.y;
      return point;
     }
    }
  6. Bakit kailangan ang pamamaraan finalize()at paano ito gumagana?

    Kung naaalala mo, ito finalize()ay isang espesyal na pamamaraan na tinatawag sa isang bagay bago ito sirain ng tagakolekta ng basura.

    Ang pangunahing layunin ng pamamaraang ito ay ilabas ang mga ginamit na panlabas na mapagkukunang hindi Java: isara ang mga file, I/O stream, atbp.

    finalize()gumagana hindi matatag.

    Ang pamamaraang ito ay hindi tumutugon sa mga inaasahan na inilagay dito. Ang Java machine ay maaaring maantala ang pagkasira ng isang bagay, pati na rin ang tawag ng isang pamamaraan, finalizehangga't gusto nito. Bukod dito, hindi nito ginagarantiyahan na ang pamamaraang ito ay tatawagin sa lahat. Sa maraming mga sitwasyon, para sa kapakanan ng "pag-optimize" hindi ito tinatawag.

  7. Ano ang pinagkaiba final, finally, finalize?

    • final- modifier
    • Ang mga patlang ay hindi mababago, ang mga pamamaraan ay na-override
    • Ang mga klase ay hindi maaaring mamana
    • Nalalapat lang ang modifier na ito sa mga klase, pamamaraan at variable (mga lokal na variable din)
    • Ang mga argumento ng pamamaraan ay minarkahan bilang finalread-only; ang pagtatangka na baguhin ang mga ito ay magreresulta sa isang error sa compilation.
    • Переменные 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.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION