บทความนี้จะบรรยายสรุปเกี่ยวกับลักษณะที่น่าสนใจของอินเทอร์เฟซที่เรียกว่าอินเทอร์เฟซ Marker In และติดตามผลด้วยการนำไปใช้งาน คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
- อินเตอร์เฟซที่ต่ออนุกรมได้
- อินเทอร์เฟซ Cloneable
- อินเทอร์เฟซระยะไกล
- ขั้นตอนในการใช้งาน Remote Interface
- กำหนดอินเทอร์เฟซระยะไกล
- ติดตั้ง Remote Interface
- สร้างและเริ่มแอปพลิเคชันระยะไกล
- สร้างและเริ่มแอปพลิเคชันไคลเอนต์
มาเริ่มกันเลย
ค่าเริ่มต้นสำหรับสตริงใน java
อินเทอร์เฟซ Marker คืออินเทอร์เฟซที่ว่างเปล่ากล่าวคือไม่มีเมธอดหรือฟิลด์ใด ๆ เป็นที่รู้จักกันในชื่ออินเทอร์เฟซการแท็กและใช้เพื่อระบุหรือแจ้งให้ JVM ทราบว่าคลาสที่ใช้อินเทอร์เฟซนี้จะมีลักษณะการทำงานพิเศษบางอย่าง วิธีที่มีประสิทธิภาพในการจำแนกรหัสสามารถทำได้โดยใช้อินเทอร์เฟซเครื่องหมาย ตัวอย่างของอินเทอร์เฟซดังกล่าว ได้แก่ : Serializable, Cloneable และ Remote Interface
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
อินเตอร์เฟซที่ต่ออนุกรมได้
การทำให้เป็นอนุกรมใน java สามารถกำหนดเป็นกระบวนการแปลงสถานะของวัตถุให้เป็นไบต์สตรีม สิ่งนี้สามารถทำได้โดยใช้อินเทอร์เฟซแบบอนุกรมซึ่งมีอยู่ใน java.io.package ต้องสังเกตว่าประเภทย่อยทั้งหมดของคลาสที่ทำให้เป็นอนุกรมนั้นสามารถต่ออนุกรมกันได้
ตัวอย่าง:
import java.io. * class Main ใช้งาน Serial ได้ {int j String s // A class constructor public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) พ่น IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Serializing 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = ObjectOutputStream ใหม่ (fos) oos ใหม่ .writeObject (obj) // De-serializing 'obj' FileInputStream fis = new FileInputStream ('pqr.txt') ObjectInputStream ois = ObjectInputStream ใหม่ (fis) Main b = (Main) ois.readObject () // การหล่อวัตถุ System.out.println (b.j + '' + bs) // ปิดสตรีม oos.close () ois.close ()}}
เอาท์พุต:
25 HelloWorld
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
อินเทอร์เฟซ Cloneable:
อินเทอร์เฟซนี้สามารถพบได้ในแพ็คเกจ java.lang การโคลนเป็นกลไกของการสร้างแบบจำลองหรือสำเนาของวัตถุที่มีชื่ออื่น
Cloneable Interface ถูกนำไปใช้โดยคลาสเพื่อบ่งชี้ไปยังเมธอด object.clone () ว่ามันถูกกฎหมายสำหรับเมธอดในการสร้างสำเนาอินสแตนซ์แบบฟิลด์สำหรับฟิลด์ของคลาสนั้น
CloneNotSupportedException ถูกโยนทิ้งสำหรับคลาสที่เรียกใช้เมธอดโคลนโดยไม่ต้องใช้อินเทอร์เฟซที่สามารถโคลนได้
ตัวอย่าง:
นำเข้าคลาส java.lang.Cloneable javaClone ใช้ Cloneable {int j String s // การกำหนดตัวสร้างคลาส javaClone สาธารณะ (int j, String s) {this.j = j this.s = s} // การแทนที่ clone () method @ แทนที่การป้องกัน Object clone () พ่น CloneNotSupportedException {return super.clone ()}} คลาสสาธารณะ Main {public static void main (String [] args) พ่น CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'และถือ // การอ้างอิงวัตถุโคลนใหม่ใน b // down-casting javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}
เอาท์พุต:
18
สวัสดีชาวโลก
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
อินเทอร์เฟซระยะไกล:
อ็อบเจ็กต์ระยะไกลสามารถกำหนดเป็นอ็อบเจ็กต์ที่สามารถเรียกใช้เมธอดจาก JVM อื่นซึ่งอาจอยู่บนโฮสต์อื่น อินเทอร์เฟซนี้พบได้ในแพ็คเกจ java.rmi วัตถุระยะไกลต้องใช้วิธีนี้โดยตรงหรือโดยอ้อม
RMI:
Remote Method Convocation คือ API ที่ทำให้อ็อบเจกต์สามารถเรียกใช้เมธอดบนอ็อบเจ็กต์ที่รันใน JVM อื่น ให้การสื่อสารระยะไกลระหว่างสองแอปพลิเคชันโดยใช้วัตถุต่อไปนี้: ต้นขั้วและโครงกระดูก
Stub:
ต้นขั้วสามารถกำหนดเป็นวัตถุที่มีอยู่ที่ฝั่งไคลเอ็นต์และแสดงถึงวัตถุระยะไกล สร้างบล็อกข้อมูลซึ่งประกอบด้วย:
α Identifier ของวัตถุระยะไกล
αชื่อของวิธีการที่จะเรียกใช้
αพารามิเตอร์ไปยัง JVM ระยะไกล
โครงกระดูก:
งานหลักของวัตถุโครงกระดูกคือการส่งคำขอจากต้นขั้วไปยังวัตถุระยะไกล นอกจากนี้ยังดำเนินการตามที่ระบุด้านล่าง:
αเรียกใช้เมธอดที่ต้องการบนวัตถุระยะไกลดั้งเดิม
αอ่านพารามิเตอร์ที่ระบุสำหรับวัตถุระยะไกล
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
วิธีเปลี่ยน double เป็น int ใน java
ขั้นตอนในการใช้งาน Remote Interface:
กำหนดอินเทอร์เฟซระยะไกล:
นำเข้า java.rmi * อินเทอร์เฟซสาธารณะ AddAll ขยายระยะไกล {public int add (int r, int s) พ่น RemoteException}
ที่นี่อินเทอร์เฟซระยะไกลถูกขยายออกไปและ RemoteException ถูกประกาศด้วยวิธีการทั้งหมดของอินเทอร์เฟซระยะไกล
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
ติดตั้งอินเทอร์เฟซระยะไกล:
มีสองวิธีในการจัดเตรียมการใช้งานกับอินเทอร์เฟซระยะไกล:
αขยายคลาส UnicastRemoteObject
αใช้เมธอด exportObject () ของคลาส UnicastRemoteObject
นำเข้า java.rmi. * import java.rmi.server * คลาสสาธารณะ AddAllRemote ขยาย UnicastRemoteObject ใช้ Adder {AddAllRemote () พ่น RemoteException {super ()} int add (int r, int s) {return r + s}}
ใช้ rmic (คอมไพเลอร์ rmi) สร้างวัตถุต้นขั้วและโครงกระดูก
วัตถุต้นขั้วและโครงกระดูกสามารถสร้างได้โดยใช้คอมไพเลอร์ rmi เครื่องมือ rmi เรียกใช้คอมไพเลอร์ RMI เพื่อสร้างวัตถุ
rmic AddAllRemote
ใช้เครื่องมือ rmiregistry เริ่มบริการรีจิสทรี
บริการรีจิสทรีสามารถเริ่มต้นได้โดยใช้เครื่องมือ rmregistry หมายเลขพอร์ตดีฟอลต์ถูกใช้หากไม่ได้ระบุโดยผู้ใช้
rmiregistry 5000
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
สร้างและเริ่มแอปพลิเคชันระยะไกล
import java.rmi. * import java.rmi.registry. * public class Server {public static void main (String args []) {ลอง {AddAll stub = new AddAllRemote () Naming.rebind ('rmi: // localhost: 5000 / sak ', ต้นขั้ว)} catch (ข้อยกเว้นจ) {System.out.println (e)}}}
วัตถุระยะไกลถูกผูกไว้ด้วยชื่อ sak ในตัวอย่างข้างต้น
การย้ายด้วยบทความนี้เกี่ยวกับ Marker Interface ใน Java
สร้างและเริ่มแอปพลิเคชันไคลเอนต์
ในตัวอย่างที่ระบุเซิร์ฟเวอร์และแอปพลิเคชันไคลเอนต์กำลังทำงานบนเครื่องเดียวกัน ดังนั้นจึงมีการใช้งาน localhost
import java.rmi. * public class Client {public static void main (String args []) {ลอง {AddAll stub = (AddAll) Naming.lookup ('rmi: // localhost: 5000 / sak') System.out.println (stub.add (29,18))} catch (ข้อยกเว้นจ) {}}}
ในการเข้าถึงวัตถุระยะไกลจากเครื่องอื่นต้องเปลี่ยนชื่อโฮสต์ท้องถิ่นเป็นที่อยู่ IP หรือชื่อโฮสต์ที่วัตถุระยะไกลตั้งอยู่
วิธีที่มีประสิทธิภาพในการจำแนกรหัสสามารถทำได้โดยใช้อินเทอร์เฟซเครื่องหมาย
ดังนั้นเราจึงมาถึงจุดสิ้นสุดของบทความนี้ หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด