JavaRush /Java Blog /Random-TK /21-nji dereje. Dereje derejesindäki söhbetdeşlik soraglar...
zor07
Dereje
Санкт-Петербург

21-nji dereje. Dereje derejesindäki söhbetdeşlik soraglaryna jogaplar

Toparda çap edildi
21-nji dereje. 1-nji dereje temasyndaky söhbetdeşlik soraglaryna jogaplar
  1. Synp usullaryny sanaňObject

    • equals()
    • hashCode()
    • toString()
    • getClass()
    • notify()
    • notifyAll()
    • wait()
    • wait(long timeOut)
    • wait(long timeOut, int nanos)
  2. equalsNäme üçin we usullar zerur hashCode?

    Obýektleri deňeşdirmek üçin ulanylýar.

    Usulyň maksady, equalsobýektleriň içki mazmunyny deňeşdirip, obýektleriň içerki birmeňzeşdigini kesgitlemekdir. Bu equalshaýal işleýär, ilki obýektleriň hash kodlary deňeşdirilýär we hash kodlary deň bolsa, garşy barlag geçirilýärequals

  3. Deňdir, ýöne artykmaç ýazmasaň näme bolýar hashCode?

    Ilki bilen hashCodetötänleýin san.

    Java-daky kolleksiýalar, ulanylýan zatlary deňeşdirmezden ozal equalsusuly ulanyp gözleýär / deňeşdirýär hashCode(). Birmeňzeş obýektler başga bolsa hashCode, obýektler başgaça hasaplanar - olary ulanmagy deňeşdirmek mümkin bolmaz equals.

  4. Usullar näme üçin wait,, notify?notifyAll

    Käwagt programmada bir sapagyň kod blokyna giren synchronized, monitory bloklaýan we mundan beýläk işläp bilmeýän ýagdaýy bolup biler, sebäbi käbir maglumatlar henizem ýok: mysal üçin, işlemeli faýl entek ýüklenmedi ýa-da şuňa meňzeş bir zat. Bu meseläni çözmek üçin bir usul oýlanyp tapyldy wait(). Bu usula jaň etmek, sapagyň monitory goýbermegine we "arakesmesine" sebäp bolýar.

    Arakesme bermek üçin usullar ulanylýar notify. notifyAllUsul notifybir tötänleýin sapagy “doňdurýar”, usul notifyAll- berlen monitoryň ähli “doňan” sapaklary.

  5. Bir obýekti nädip klonlamaly?

    Klonirlemegiň iki görnüşi.

    Bellenen obýekti klonlamak üçin:

    • CloneableSynpyňyza interfeýs goşuň
    • Usuly ýok ediň clonewe ondaky esasy ýerine ýetiriş diýip atlandyryň:
    class Point implements Cloneable
    {
     int x;
     int y;
    
     public Object clone()
     {
      return super.clone();
     }
    }

    Ora-da usulyň ýerine ýetirilişini cloneözüňiz ýazyp bilersiňiz:

    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 näme üçin zerur finalize()we ol nähili işleýär?

    .Adyňyzda bolsa, finalize()zibil ýygnaýjy ýok etmezden ozal bir obýekte çagyrylýan ýörite usul.

    Bu usulyň esasy maksady, Java däl daşarky ulanylýan çeşmeleri çykarmak: faýllary ýapmak, I / O akymlary we ş.m.

    finalize()durnuksyz işleýär.

    Bu usul, garaşylýan zatlara laýyk gelmeýär. finalizeJava enjamy , islän wagty bir obýektiň ýok edilmegini, şeýle hem usulyň çagyryşyny gijikdirip biler . Mundan başga-da, bu usulyň asla çagyryljakdygyny kepillendirmeýär. Köp ýagdaýlarda “optimizasiýa” üçin çagyrylmaýar.

  7. Tapawudy näme final,, finally?finalize

    • final- üýtgediji
    • Meýdanlary üýtgedip bolmaýar, usullar ýok edilýär
    • Sapaklary miras alyp bolmaýar
    • Bu üýtgediji diňe synplara, usullara we üýtgeýänlere degişlidir (ýerli üýtgeýänlerem)
    • Diňe okalýan ýaly bellenilen usul argumentleri final, olary üýtgetmäge synanyşmak düzme ýalňyşlygyna sebäp bolar.
    • Переменные 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.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION