JavaRush /Блоги Java /Random-TG /Сатҳи 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?

    Барои муқоисаи an objectҳо истифода мешавад.

    Мақсади усул equalsмуайян кардани он аст, ки оё an objectҳо бо роҳи муқоисаи мундариҷаи дохorи an objectҳо якхелаанд. Ин equalsоҳиста кор мекунад, аввал codeҳои хэши an objectҳо муқоиса карда мешаванд ва агар 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ро дуруст клон кардан мумкин аст?

    Ду намуди клонкунӣ.

    Барои клон кардани 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()ноустувор кор мекунад.

    Ин усул ба интизориҳои дар он гузошташуда мувофиқат намекунад. Мошини Java метавонад нобудшавии an object ва инчунин даъвати усулро finalizeто даме, ки ба он маъқул аст, таъхир кунад. Гузашта аз ин, он кафолат намедиҳад, ки ин усул умуман даъват карда мешавад. Дар бисёр ҳолатҳо, ба хотири "оптимизатсия" он даъват карда намешавад.

  7. В чем отличие final, finally, finalize?

    • final — модификатор
    • Поля не могут быть изменены, методы переопределены
    • Классы нельзя наследовать
    • Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным)
    • Аргументы методов, обозначенные How 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