-
Навіщо потрібен
RandomAccessFile
?RandomAccessFile
- клас пакету Java IO API, він дозволяє переміщатися файлом, читати з нього або писати в нього, як вам буде завгодно. Ви також зможете замінити існуючі частини файлу, йдеться про оновлення вмісту файлу, а точніше про оновлення фрагмента файлу. Це неможливо зробити за допомогоюFileInputStream
абоFileOutputStream
, алеRandomAccessFile
дасть вам цю можливість.Посилання: RandomAccessFile та його можливості
-
Що буде, якщо файл, звідки читає
RandomAccessFile
, не існує?Буде
FileNotFoundException
-
Що буде, якщо файл, куди пише
RandomAccessFile
, не існує?Створить новий і запише до нього.
-
Навіщо потрібен клас
StringReader
?The Java.io.StringReader class is a character stream whose source is a string.
Являє собою потік символів, чиє джерело називається рядком
-
Навіщо потрібен клас
StringWriter
?public class StringWriter
extends Writer
Character stream, що з'єднує його відправлення в string buffer, який може бути використаний до структури string.
Подивіться на StringWriter не має ефекту. Методи в цій категорії можуть бути названі після stream, які були заблоковані без generating IOException.
Потік символів, що збирає свій потік у буфер рядків, які потім можуть бути використані для створення рядка.
-
Навіщо потрібен клас
ByteArrayStream
?Отже,
ByteArrayInputStream
іByteArrayOutputStream
.Ці класи по суті чимось схожі на
StringReader
і< code="">. Тільки <>StringReader
читав символи (char) із рядка (String), аByteArrayInputStream
читає байти із масиву байт (ByteArray).StringWriter
писав символи (char) у рядок, аByteArrayOutputStream
пише байти в масив байт у нього всередині. При записі вStringWriter
рядок усередині нього подовжувалась, а при записі вByteArrayOutputStream
його внутрішній масив байт теж динамічно розширюється. -
Навіщо потрібен клас
PrintStream
? Назвіть місця, де використовується?Клас
PrintStream
був придуманий для читального висновку інформації. Він практично весь складається з методівprint
таprintln
. -
Навіщо потрібен
DynamicProxy
?У Java є спеціальний клас (java.lang.reflect.Proxy), за допомогою якого фактично можна сконструювати об'єкт під час виконання програми (динамічно), не створюючи для нього окремого класу.
-
Як працює RMI?
RMI розшифровується Remote Method Invokation – віддалений виклик методів. Або іншими словами RMI - це механізм, який дозволяє об'єкту в одній Java-машині викликати методи об'єкта в іншій Java-машині, навіть якщо вони знаходяться на різних комп'ютерах, у різних країнах, на різних сторонах земної кулі.
Традиційний підхід до виконання коду на інших машинах, рознесених по мережі, може збентежити через свою нудну і схильну до помилок реалізації. Найкращий спосіб розглянути цю проблему полягає в припущенні, що деякі об'єкти розміщуються на іншій машині, і що ви можете надсилати повідомлення цим віддаленим об'єктам і отримувати результат, начебто вони розміщуються на вашій локальній машині. Це спрощення в точності є тим, що дозволяє робити віддалений виклик методів (RMI) в Java.
Ось стаття зі створення власної реалізації RMI: Віддалений виклик методів (RMI)
-
Об'єкти яких типів можна передавати RMI?
Об'єкти мають імплементувати інтерфейс
Serializable
Remote method Invocation – механізм, який дозволяє викликати метод віддаленого об'єкта. Згідно з ним, всі операції з підготовки і передачі даних інкапсулюються в методі клієнтського об'єкта-заглушки (stub), що викликається. Сам виклик методу нічим не відрізняється від виклику методу звичайного локального об'єкта, за невеликим винятком:
- локальні об'єкти передаються за значенням (копії);
- при передачі віддаленого (
Remote
) об'єкта, якщо він експортований, передається stub цього об'єкта; - передані об'єкти повинні бути
Serializable
; - окрім інших виняткових ситуацій, при виклику віддаленого методу може збуджуватися виняток
RemoteException
(помилки маршалізації/демаршалізації, передачі даних та інші можливі помилки протоколу);
Також слід зазначити, що з виклику методу ми працюємо з віддаленим інтерфейсом, а чи не з віддаленим класом.
DefNeo
36 рівень
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ