JavaRush /مدونة جافا /Random-AR /المستوى 34. إجابات لأسئلة المقابلة حول موضوع المستوى
lichMax
مستوى
Санкт-Петербург

المستوى 34. إجابات لأسئلة المقابلة حول موضوع المستوى

نشرت في المجموعة
لقد بحثت في الموقع باستخدام بحثي الأصلي وبحثت في كل شيء باستخدام Google - لا توجد إجابات للأسئلة من هذا المستوى. ربما فاتني شيء ما، وما زالوا هنا في مكان ما على الموقع!؟ المستوى 34. إجابات أسئلة المقابلة حول موضوع المستوى - 1فقط في حالة إرفاق الإجابات التي كتبتها لنفسي: أسئلة للمقابلة:
  1. ما هو جمع القمامة؟
  2. متى يتم استدعاء الطريقة finalize؟
  3. ماذا يحدث إذا finalizeحدث استثناء في إحدى الطرق؟
  4. ماذا حدث SoftReference؟
  5. ماذا حدث WeakReference؟
  6. ماذا حدث PhantomReference؟
  7. كيف يعمل WeakHashMap؟ أين يتم استخدامه؟
  8. لماذا تحتاج إلى تمرير قائمة الانتظار إلى المنشئ PhantomReference؟
  9. لماذا تحتاج المسجل؟
  10. ما هي إعدادات المسجل التي تعرفها؟
اجاباتي:
  1. هذه آلية لتدمير الأشياء غير الضرورية. الكائنات غير الضرورية هي كائنات غير مستخدمة. هناك طريقتان للعثور على مثل هذه الكائنات: عد المراجع وتتبعها. في الحالة الأولى، يرتبط كل كائن بمتغير يقوم بتخزين عدد المراجع لهذا الكائن. إذا انخفض هذا الرقم إلى الصفر، يعتبر الكائن ميتا. في الحالة الثانية، يتبع جامع البيانات المهملة مراجع الكائنات من نقاط الجذر إلى النهاية (حتى القيمة الخالية)، ويمر عبر هذه الشجرة بأكملها. الكائنات التي لا يمكنها الوصول إليها من نقاط الجذر تعتبر ميتة. نقاط الجذر هي جميع المواضيع النشطة، والطريقة الرئيسية، ووسائط الطريقة main()، بالإضافة إلى جميع المتغيرات الثابتة للفئة التي توجد بها الطريقة main().

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

    Для второй области сборка мусора идёт несколько по-другому. Там есть одна большая область, она ни на что не делится, но сборщик мусора все живые an objectы в ней во время своей работы перемещает в начало области. Соответственно, вторая часть области будет состоять только из пустого пространства и мёртвых an objectов. После этого сборщик мусора завершает свою работу.

  2. Перед уничтожение an object сборщиком мусора. Также можно вручную запустить вызовы этого метода у всех недостижимых an objectов, для этого надо вызвать метод System.runFinalization() or Runtime.getRuntime().runFinalization().

  3. Это исключение будет проигнорировано, и произойдёт выход из метода.

  4. SoftReference переводится How "мягкая link". Эта link на an object, но более слабая, чем обычная link (StrongReference). Объекты, на которые сущесвуют только мягкие ссылки, называются мягcodeостижимыми. Такие an objectы не уничтожаются в обычном случае. Но если у JVM закочиналась память, то сборщик мусоры удаляет все такие an objectы.

  5. WeakReference — это так называемая слабая link на an object. Она ещё слабее Soft-ссылки. Все an objectы, на которые существуют только слабые ссылки, будут удалены при ближайщей сборке мусора.

  6. PhantomReference — это самая слабая link. Механизм работы с такими link запускается только если на an object нет больше ниHowих других ссылок. Призрачные ссылки используются для сложной proceduresы удаления an object. Это может быть необходимо, если an object делает что за граница Java-машины, например, вызывает низкоуровневые функции ОС or пишет своё состояние в файл, or делает ещё что-то важное и сложное.

    Механизм работы с такими linkми следующий. Если на an object не осталось больше ниHowих других ссылок, и у него переопределён метода finalize(), то этот метода будет вызван во время ближащей сборки мусора. Если же этот метод не переопределён, то этот an object пропускает текущую сборку мусора, и попадает только в следующую. Во время этой (следующей) сборки мусора данный an object помещается в очередь призрачных an objectов, из которой будет удалён, когда у его призрачной ссылки вызовут метод clear(). Также стоит отметить, что метода get() у призрачной link всегда возвращает null (в отличие от двух других несильных ссылок, у которых он возвращает null, только если an object уже уничтожен).

  7. WeakHashMap — это HashMap, у которого ключами являются слабые ссылки. Поэтому, если во время ближайшей сборки мусора будет обнаружено, что на an object существует только link в WeakHashMap, то из WeakHashMap будет удалена вся пара "ключ-meaning", связанная с этим an objectом.

    В связи с этим данная коллекция может быть использована для хранения Howой-то дополнительной, не очень важной информации об an objectе. Также её удобно использоваться для хранения Howой-то временной информации (которая нужная только в рамках данной операции).

  8. Эта очередь используется для отслеживания того, что an object больше не нужен. Может быть использовано для закрытия ресурсов, открытых данным an objectом (например, удаление созданных файлов).

  9. هناك حاجة إلى المسجل لحفظ المعلومات حول سلوك البرنامج، وكذلك بعض حالاته. يمكن استخدامه لتصحيح الأخطاء وتحديد أخطاء البرنامج وفشله. يسمح المسجل أيضًا للمطور بتلقي التعليقات من برنامجه أثناء تشغيله. بالإضافة إلى ذلك، في حالة حدوث حالات فشل خطيرة، يمكن للمسجل إخطار الأشخاص المناسبين بسرعة (على سبيل المثال، المطورين والعملاء ومديري المشاريع والدعم الفني وما إلى ذلك) حول حالات الفشل هذه.

  10. عند إعداد التسجيل، يمكنك تحديد الأمور التالية:

    • المكان الذي ستتم فيه كتابة المعلومات (ملف، وحدة تحكم، قاعدة بيانات، شبكة، إلخ.)
    • ما هو مستوى الرسائل التي سيتم تسجيلها
    • نوع إدخالات السجل
    • بالنسبة للملفات، يمكنك تحديد: المسار إلى الملف والدليل، وحجم الملف، وعدد الملفات
    • حدد لكل حزمة على حدة مستوى الرسائل الخاص بها الذي سيتم كتابته في السجل
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION