JavaRush /Java Blogu /Random-AZ /Səviyyə 21. Səviyyə mövzusu üzrə müsahibə suallarına cava...
zor07
Səviyyə
Санкт-Петербург

Səviyyə 21. Səviyyə mövzusu üzrə müsahibə suallarına cavablar

Qrupda dərc edilmişdir
Səviyyə 21. Səviyyə - 1 mövzusu üzrə müsahibə suallarına cavablar
  1. Sinif metodlarını sadalayınObject

    • equals()
    • hashCode()
    • toString()
    • getClass()
    • notify()
    • notifyAll()
    • wait()
    • wait(long timeOut)
    • wait(long timeOut, int nanos)
  2. equalsNiyə və metodlara ehtiyac var hashCode?

    Obyektləri müqayisə etmək üçün istifadə olunur.

    Metodun məqsədi equalsobyektlərin daxili məzmununu müqayisə edərək, obyektlərin daxili eyni olub olmadığını müəyyən etməkdir. Bu, equalsyavaş-yavaş işləyir, əvvəlcə obyektlərin hash kodları müqayisə edilir və hash kodları bərabərdirsə, yoxlama aparılır.equals

  3. Bərabərləri ləğv etsəniz, lakin ləğv etməsəniz nə olar hashCode?

    Əvvəlcə hashCodetəsadüfi bir nömrə.

    Java-dakı kolleksiyalar həmişə istifadə edərək obyektləri müqayisə etməzdən əvvəl equalsmetoddan istifadə edərək onları axtarır/müqayisə edir hashCode(). Eyni obyektlər fərqlidirsə hashCode, o zaman obyektlər fərqli hesab ediləcək - onlardan istifadə etməklə müqayisə etmək sadəcə mümkün olmayacaq equals.

  4. Niyə üsullar wait, notify, notifyAll?

    Bəzən bir proqramda bir mövzunun kod blokuna daxil olduğu synchronized, monitoru blokladığı və daha çox işləyə bilməyəcəyi bir vəziyyət ola bilər, çünki bəzi məlumatlar hələ də yoxdur: məsələn, onun emal etməli olduğu fayl hələ yüklənməyib və ya buna bənzər bir şey. Bu problemi həll etmək üçün bir üsul icad edilmişdir wait(). Bu metodun çağırılması mövzunun monitoru buraxmasına və "fasilə" verilməsinə səbəb olur.

    Fasiləni dayandırmaq üçün üsullardan istifadə olunur notify. notifyAllMetod notifybir təsadüfi ipi "dondurur", metod notifyAll- müəyyən bir monitorun bütün "donmuş" iplərini.

  5. Bir obyekti necə düzgün klonlaşdırmaq olar?

    İki növ klonlama.

    Standart obyekti klonlaşdırmaq üçün:

    • CloneableSinifinizə interfeys əlavə edin
    • Metodunu ləğv edin clonevə onun içindəki əsas tətbiqi çağırın:
    class Point implements Cloneable
    {
     int x;
     int y;
    
     public Object clone()
     {
      return super.clone();
     }
    }

    Və ya metodun həyata keçirilməsini cloneözünüz yaza bilərsiniz:

    class Point
    {
     int x;
     int y;
    
     public Object clone()
     {
      Point point = new Point();
      point.x = this.x;
      point.y = this.y;
      return point;
     }
    }
  6. Metod nə üçün lazımdır finalize()və necə işləyir?

    Xatırlayırsınızsa, bu, finalize()zibil kollektoru onu məhv etməzdən əvvəl obyektə çağırılan xüsusi bir üsuldur.

    Bu metodun əsas məqsədi istifadə olunan xarici qeyri-Java resurslarını buraxmaqdır: faylları bağlamaq, giriş/çıxış axınları və s.

    finalize()qeyri-sabit işləyir.

    Bu üsul ona qoyulan gözləntiləri doğrultmur. Java maşını obyektin məhv edilməsini, eləcə də metodun çağırılmasını finalizeistədiyi müddətə gecikdirə bilər. Üstəlik, bu metodun ümumiyyətlə çağırılacağına zəmanət vermir. Bir çox hallarda, "optimallaşdırma" üçün çağırılmır.

  7. Fərq nədir final, finally, finalize?

    • final- dəyişdirici
    • Sahələr dəyişdirilə bilməz, üsullar ləğv edilir
    • Siniflər miras alına bilməz
    • Bu dəyişdirici yalnız siniflərə, metodlara və dəyişənlərə (həmçinin yerli dəyişənlərə) aiddir.
    • Metod arqumentləri yalnız oxunur final; onları dəyişməyə cəhd kompilyasiya xətası ilə nəticələnəcək.
    • Переменные 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.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION