วิธีการใช้งาน Marker Interface ใน Java



บทความนี้จะบรรยายสรุปเกี่ยวกับลักษณะที่น่าสนใจของอินเทอร์เฟซที่เรียกว่าอินเทอร์เฟซ Marker ใน Java และติดตามการใช้งาน

บทความนี้จะบรรยายสรุปเกี่ยวกับลักษณะที่น่าสนใจของอินเทอร์เฟซที่เรียกว่าอินเทอร์เฟซ Marker In และติดตามผลด้วยการนำไปใช้งาน คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้

มาเริ่มกันเลย





ค่าเริ่มต้นสำหรับสตริงใน 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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด