-
Mengapa itu diperlukan
RandomAccessFile
?RandomAccessFile
adalah kelas dalam paket Java IO API, yang memungkinkan Anda menavigasi, membaca, atau menulis ke file sesuka Anda. Anda juga dapat mengganti bagian file yang ada; kita berbicara tentang memperbarui konten file, atau lebih tepatnya tentang memperbarui bagian file. Ini tidak dapat dilakukan denganFileInputStream
atauFileOutputStream
, tetapiRandomAccessFile
akan memberi Anda kemampuan ini. -
Apa yang terjadi jika file yang dibacanya
RandomAccessFile
tidak ada?Akan
FileNotFoundException
-
Apa yang terjadi jika file tempat penulisannya
RandomAccessFile
tidak ada?Ini akan membuat yang baru dan menuliskannya ke dalamnya.
-
Mengapa kita memerlukan kelas
StringReader
?Kelas Java.io.StringReader adalah aliran karakter yang sumbernya adalah string.
Mewakili aliran karakter yang sumbernya disebut string
-
Mengapa kita memerlukan kelas
StringWriter
?public class StringWriter
extends Writer
Aliran karakter yang mengumpulkan keluarannya dalam buffer string, yang kemudian dapat digunakan untuk membuat string.
Menutup StringWriter tidak berpengaruh. Metode di kelas ini dapat dipanggil setelah aliran ditutup tanpa menghasilkan IOException.
Aliran karakter yang mengumpulkan alirannya ke dalam buffer string, yang kemudian dapat digunakan untuk membuat string.
-
Mengapa kita memerlukan kelas
ByteArrayStream
?Jadi,
ByteArrayInputStream
danByteArrayOutputStream
.Kelas-kelas ini pada dasarnya mirip dengan
StringReader
dan< code="">. Itu hanya <>StringReader
membaca karakter (char) dari string (String), tetapiByteArrayInputStream
membaca byte dari array byte (ByteArray).StringWriter
menulis karakter (char) ke dalam string, tetapiByteArrayOutputStream
menulis byte ke dalam array byte di dalamnya. Saat menulis keStringWriter
dalamnya, string di dalamnya memanjang, dan saat menulis keByteArrayOutputStream
array internalnya, byte juga meluas secara dinamis. -
Mengapa kita memerlukan kelas
PrintStream
? Sebutkan tempat penggunaannya?Kelas
PrintStream
diciptakan untuk menampilkan informasi dengan cara yang mudah dibaca. Hampir seluruhnya terdiri dari metodeprint
danprintln
. -
Mengapa itu diperlukan
DynamicProxy
?Java memiliki kelas khusus (java.lang.reflect.Proxy) yang dengannya Anda dapat membuat objek saat runtime (secara dinamis) tanpa membuat kelas terpisah untuknya.
-
Bagaimana cara kerja RMI?
RMI adalah singkatan dari Remote Method Invokation. Atau dengan kata lain, RMI adalah mekanisme yang memungkinkan sebuah objek di satu mesin Java memanggil metode dari suatu objek di mesin Java lainnya, meskipun objek tersebut berada di komputer berbeda, di negara berbeda, di belahan dunia berbeda.
Pendekatan tradisional untuk mengeksekusi kode pada mesin lain di seluruh jaringan dapat membingungkan karena implementasinya yang membosankan dan rawan kesalahan. Cara terbaik untuk mengatasi masalah ini adalah dengan berasumsi bahwa beberapa objek berlokasi di komputer lain, dan Anda dapat mengirim pesan ke objek jarak jauh tersebut dan menerima hasilnya seolah-olah objek tersebut berlokasi di mesin lokal Anda. Penyederhanaan inilah yang memungkinkan Anda melakukan Remote Method Invocation (RMI) di Java.
Berikut artikel tentang cara membuat implementasi RMI Anda sendiri: Remote Method Invocation (RMI)
-
Jenis objek apa yang dapat ditransfer melalui RMI?
Objek harus mengimplementasikan antarmuka
Serializable
Pemanggilan metode jarak jauh adalah mekanisme yang memungkinkan Anda memanggil metode pada objek jarak jauh. Menurutnya, semua operasi untuk mempersiapkan dan mengirimkan data dienkapsulasi dalam metode yang disebut objek stub klien. Pemanggilan metode itu sendiri tidak berbeda dengan pemanggilan metode pada objek lokal biasa, dengan beberapa pengecualian:
- objek lokal diteruskan berdasarkan nilai (salinan);
- saat mentransfer
Remote
objek jarak jauh ( ), jika diekspor, stub objek tersebut akan ditransfer; - benda yang dilewati harus
Serializable
; - selain semua situasi luar biasa lainnya, saat memanggil metode jarak jauh, pengecualian mungkin muncul
RemoteException
(kesalahan marshalling/unmarshalling, kesalahan transfer data, dan kemungkinan kesalahan protokol lainnya);
Perlu juga dicatat bahwa saat memanggil suatu metode, kami bekerja dengan antarmuka jarak jauh, dan bukan dengan kelas jarak jauh.
DefNeo
Level 36
GO TO FULL VERSION