JavaRush /בלוג Java /Random-HE /רמה 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למערך הפנימי שלו, גם ה-byte התרחב דינמית.

  7. למה אנחנו צריכים שיעור PrintStream? תן שם את המקומות שבהם הוא משמש?

    הכיתה PrintStreamהומצאה כדי להציג מידע בצורה קריא. זה מורכב כמעט כולו משיטות printו println.

  8. למה זה נחוץ DynamicProxy?

    ל-Java יש מחלקה מיוחדת (java.lang.reflect.Proxy) שבעזרתה ניתן לבנות אובייקט בזמן ריצה (דינמית) מבלי ליצור עבורו מחלקה נפרדת.

  9. כיצד פועל RMI?

    RMI ראשי תיבות של Remote Method Invokation. או במילים אחרות, RMI הוא מנגנון המאפשר לאובייקט במכונת ג'אווה אחת לקרוא לשיטות של אובייקט במכונת ג'אווה אחרת, גם אם הן ממוקמות במחשבים שונים, במדינות שונות, בצדדים שונים של כדור הארץ.

    Традиционный подход к выполнению 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