JavaRush /Java блог /Random UA /Рівень 32. Відповіді на запитання до співбесіди на тему р...
DefNeo
36 рівень

Рівень 32. Відповіді на запитання до співбесіди на тему рівня

Стаття з групи Random UA
Рівень 32. Відповіді на запитання до співбесіди на тему рівня - 1
  1. Навіщо потрібен RandomAccessFile?

    RandomAccessFile- клас пакету Java IO API, він дозволяє переміщатися файлом, читати з нього або писати в нього, як вам буде завгодно. Ви також зможете замінити існуючі частини файлу, йдеться про оновлення вмісту файлу, а точніше про оновлення фрагмента файлу. Це неможливо зробити за допомогою FileInputStreamабо FileOutputStream, але RandomAccessFileдасть вам цю можливість.

    Посилання: RandomAccessFile та його можливості

  2. Що буде, якщо файл, звідки читає RandomAccessFile, не існує?

    БудеFileNotFoundException

  3. Що буде, якщо файл, куди пише RandomAccessFile, не існує?

    Створить новий і запише до нього.

  4. Навіщо потрібен клас StringReader?

    The Java.io.StringReader class is a character stream whose source is a string.

    Являє собою потік символів, чиє джерело називається рядком

  5. Навіщо потрібен клас StringWriter?

    public class StringWriter
    extends Writer

    Character stream, що з'єднує його відправлення в string buffer, який може бути використаний до структури string.

    Подивіться на StringWriter не має ефекту. Методи в цій категорії можуть бути названі після stream, які були заблоковані без generating 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 розшифровується Remote Method Invokation – віддалений виклик методів. Або іншими словами RMI - це механізм, який дозволяє об'єкту в одній Java-машині викликати методи об'єкта в іншій Java-машині, навіть якщо вони знаходяться на різних комп'ютерах, у різних країнах, на різних сторонах земної кулі.

    Традиційний підхід до виконання коду на інших машинах, рознесених по мережі, може збентежити через свою нудну і схильну до помилок реалізації. Найкращий спосіб розглянути цю проблему полягає в припущенні, що деякі об'єкти розміщуються на іншій машині, і що ви можете надсилати повідомлення цим віддаленим об'єктам і отримувати результат, начебто вони розміщуються на вашій локальній машині. Це спрощення в точності є тим, що дозволяє робити віддалений виклик методів (RMI) в Java.

    Ось стаття зі створення власної реалізації RMI: Віддалений виклик методів (RMI)

  10. Об'єкти яких типів можна передавати RMI?

    Об'єкти мають імплементувати інтерфейсSerializable

    Remote method Invocation – механізм, який дозволяє викликати метод віддаленого об'єкта. Згідно з ним, всі операції з підготовки і передачі даних інкапсулюються в методі клієнтського об'єкта-заглушки (stub), що викликається. Сам виклик методу нічим не відрізняється від виклику методу звичайного локального об'єкта, за невеликим винятком:

    • локальні об'єкти передаються за значенням (копії);
    • при передачі віддаленого ( Remote) об'єкта, якщо він експортований, передається stub цього об'єкта;
    • передані об'єкти повинні бути Serializable;
    • окрім інших виняткових ситуацій, при виклику віддаленого методу може збуджуватися виняток RemoteException(помилки маршалізації/демаршалізації, передачі даних та інші можливі помилки протоколу);

    Також слід зазначити, що з виклику методу ми працюємо з віддаленим інтерфейсом, а чи не з віддаленим класом.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ