JavaRush /مدونة جافا /Random-AR /المستوى 32. إجابات لأسئلة المقابلة حول موضوع المستوى
DefNeo
مستوى

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

نشرت في المجموعة
المستوى 32. إجابات أسئلة المقابلة حول موضوع المستوى - 1
  1. لماذا هو مطلوب RandomAccessFile؟

    RandomAccessFileهي فئة في حزمة Java IO API، فهي تسمح لك بالتنقل في ملف أو القراءة منه أو الكتابة فيه كما تريد. يمكنك أيضًا استبدال الأجزاء الموجودة من الملف؛ فنحن نتحدث عن تحديث محتويات الملف، أو بشكل أكثر دقة عن تحديث جزء من الملف. لا يمكن القيام بذلك باستخدام FileInputStreamأو FileOutputStream، ولكنه RandomAccessFileسيمنحك هذه القدرة.

    الرابط: RandomAccessFile وإمكانياته

  2. ماذا يحدث إذا كان الملف الذي يقرأ منه RandomAccessFileغير موجود؟

    سوفFileNotFoundException

  3. ماذا يحدث إذا كان الملف الذي يكتب فيه RandomAccessFileغير موجود؟

    سيتم إنشاء واحدة جديدة والكتابة عليها.

  4. لماذا نحتاج إلى فئة StringReader؟

    فئة Java.io.StringReader عبارة عن دفق أحرف مصدره عبارة عن سلسلة.

    يمثل دفقًا من الأحرف التي يسمى مصدرها سلسلة

  5. لماذا نحتاج إلى فئة StringWriter؟

    public class StringWriter
    extends Writer

    دفق أحرف يجمع مخرجاته في مخزن مؤقت للسلسلة، والذي يمكن استخدامه بعد ذلك لإنشاء سلسلة.

    إغلاق StringWriter ليس له أي تأثير. يمكن استدعاء الأساليب الموجودة في هذه الفئة بعد إغلاق الدفق دون إنشاء IOException.

    دفق من الأحرف يجمع دفقه في مخزن مؤقت للسلاسل، والذي يمكن بعد ذلك استخدامه لإنشاء سلسلة.

  6. لماذا نحتاج إلى فئة ByteArrayStream؟

    لذا ByteArrayInputStreamو ByteArrayOutputStream.

    هذه الفئات تشبه في الأساس StringReaderو < code="">. فهو StringReaderيقرأ فقط الأحرف (char) من سلسلة (String)، ولكنه ByteArrayInputStreamيقرأ البايتات من مصفوفة بايت (ByteArray). <>

    StringWriterكتب أحرفًا (char) في سلسلة، لكنه ByteArrayOutputStreamيكتب البايتات في مصفوفة بايت بداخلها. عند الكتابة إليه StringWriter، تطول السلسلة الموجودة بداخله، وعند الكتابة إلى ByteArrayOutputStreamصفيفه الداخلي، يتوسع البايت أيضًا ديناميكيًا.

  7. لماذا نحتاج إلى فئة PrintStream؟ اذكر الأماكن التي يستخدم فيها؟

    تم اختراع الفصل PrintStreamلعرض المعلومات بطريقة قابلة للقراءة. وهو يتألف بالكامل تقريبًا من الأساليب printو println.

  8. لماذا هو مطلوب DynamicProxy؟

    تحتوي Java على فئة خاصة (java.lang.reflect.Proxy) يمكنك من خلالها إنشاء كائن في وقت التشغيل (ديناميكيًا) دون إنشاء فئة منفصلة له.

  9. كيف يعمل RMI؟

    يرمز RMI إلى استدعاء الطريقة عن بعد. أو بمعنى آخر، RMI هي آلية تسمح لكائن في أحد أجهزة Java باستدعاء أساليب كائن في جهاز Java آخر، حتى لو كانت موجودة على أجهزة كمبيوتر مختلفة، في بلدان مختلفة، على جوانب مختلفة من الكرة الأرضية.

    Традиционный подход к выполнению codeа на других машинах, разнесенных по сети может смутить из-за своей нудной и склонной к ошибкам реализации. Лучший способ рассмотреть эту проблему состоит в предположении, что некоторые an objectы располагаются на другой машине, и что вы можете посылать messages этим удаленным an objectм и получать результат, How будто они располагаются на вашей локальной машине. Это упрощение в точности является тем, что позволяет делать Удаленный Вызов Методов (RMI) в Java.

    Вот статья по созданию собственной реализации RMI: Удаленный вызов методов (RMI)

  10. Объекты Howих типов можно передавать по RMI?

    Объекты должны имплементировать интерфейс Serializable

    Remote method Invocation — механизм, который позволяет вызывать метод удалённого an object. Согласно ему, все операции по подготовке и передаче данных инкапсулируются в вызываемом методе клиентского an object-заглушки (stub). Сам же вызов метода ничем не отличается от вызова метода обычного локального an object, за небольшим исключением:

    • локальные an objectы передаются по значению (копии);
    • при передаче удалённого (Remote) an object, если он экспортирован, передаётся stub этого an object;
    • передаваемые an objectы должны быть Serializable;
    • кроме всех прочих исключительных ситуаций, при вызове удалённого метода может возбуждаться исключение RemoteException (ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);

    Так же нужно отметить, что при вызове метода мы работаем с удалённым интерфейсом, а не с удалённым классом.

تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION