JavaRush /مدونة جافا /Random-AR /المستوى 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هو تحديد ما إذا كانت الكائنات متطابقة داخليًا من خلال مقارنة المحتويات الداخلية للكائنات. يعمل هذا equalsببطء، حيث تتم أولاً مقارنة رموز التجزئة الخاصة بالكائنات، وإذا كانت رموز التجزئة متساوية، يتم إجراء فحص ضدهاequals

  3. ماذا يحدث إذا قمت بتجاوز يساوي ولكن لم تتجاوز hashCode؟

    في البداية hashCodeرقم عشوائي

    equalsتبحث المجموعات في Java دائمًا عن/تقارنها باستخدام الطريقة قبل مقارنة الكائنات باستخدام hashCode(). وإذا كانت الكائنات المتطابقة مختلفة hashCode، فسيتم اعتبار الكائنات مختلفة - ببساطة لن يكون من الممكن المقارنة باستخدامها equals.

  4. لماذا الأساليب wait،، notify؟notifyAll

    في بعض الأحيان، قد يواجه البرنامج موقفًا حيث يقوم مؤشر ترابط بإدخال كتلة من التعليمات البرمجية synchronized، مما يؤدي إلى حظر الشاشة، ولا يمكنه العمل أكثر، بسبب لا تزال بعض البيانات مفقودة: على سبيل المثال، الملف الذي يجب معالجته لم يتم تحميله بعد أو شيء من هذا القبيل. وتم اختراع طريقة لحل هذه المشكلة wait(). يؤدي استدعاء هذه الطريقة إلى قيام الخيط بتحرير الشاشة و"الإيقاف المؤقت".

    لإلغاء الإيقاف المؤقت، يتم استخدام الأساليب notify. notifyAllتعمل الطريقة notifyعلى "إلغاء تجميد" مؤشر ترابط عشوائي واحد، بينما تعمل الطريقة notifyAllعلى "إلغاء تجميد" جميع المواضيع "المجمدة" لشاشة معينة.

  5. كيفية استنساخ كائن بشكل صحيح؟

    نوعان من الاستنساخ.

    لاستنساخ كائن افتراضي:

    • أضف واجهة 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()طريقة خاصة يتم استدعاؤها على الكائن قبل أن يقوم جامع البيانات المهملة بتدميره.

    الغرض الرئيسي من هذه الطريقة هو تحرير الموارد الخارجية غير Java المستخدمة: إغلاق الملفات، وتدفقات الإدخال/الإخراج، وما إلى ذلك.

    finalize()يعمل غير مستقر.

    هذه الطريقة لا ترقى إلى مستوى التوقعات الموضوعة عليها. يمكن لآلة Java تأخير تدمير الكائن، وكذلك استدعاء الطريقة، finalizeللمدة التي تريدها. علاوة على ذلك، فإنه لا يضمن أنه سيتم استدعاء هذه الطريقة على الإطلاق. في كثير من المواقف، لا يتم استدعاؤه من أجل "التحسين".

  7. ماهو الفرق final، finally، finalize؟

    • final- المعدل
    • لا يمكن تغيير الحقول، ويتم تجاوز الأساليب
    • لا يمكن توريث الطبقات
    • ينطبق هذا المعدل فقط على الفئات والأساليب والمتغيرات (أيضًا المتغيرات المحلية)
    • وسيطات الطريقة التي تم وضع علامة عليها 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