Java에서 마커 인터페이스를 구현하는 방법?



이 기사에서는 Java에서 Marker Interface라고하는 인터페이스의 흥미로운 측면에 대해 간략히 설명하고 구현에 대해 설명합니다.

이 기사에서는 Marker Interface In이라는 인터페이스의 흥미로운 측면에 대해 간략히 설명합니다. 구현을 따르십시오. 이 기사에서는 다음 사항을 다룰 것입니다.

그럼 시작하겠습니다.





마커 인터페이스는 비어있는 인터페이스입니다. 즉, 메서드 나 필드가 포함되어 있지 않습니다. 태그 지정 인터페이스라고도하며이 인터페이스를 구현하는 클래스가 특별한 동작을 가질 것임을 JVM에 표시하거나 알리는 데 사용됩니다. 마커 인터페이스를 사용하면 코드를 효율적으로 분류 할 수 있습니다. 이러한 인터페이스의 예는 직렬화 가능, 복제 가능 및 원격 인터페이스입니다.

Java의 Marker Interface에 대한이 기사로 이동



직렬화 가능한 인터페이스

Java에서의 직렬화는 객체의 상태를 바이트 스트림으로 변환하는 프로세스로 정의 할 수 있습니다. 이는 java.io.package에있는 직렬화 가능한 인터페이스를 사용하여 수행 할 수 있습니다. 직렬화 가능한 클래스의 모든 하위 유형 자체가 직렬화 가능하다는 점에 유의해야합니다.

예:

import java.io. * class Main은 Serializable을 구현합니다 {int j String s // 클래스 생성자 public Main (int j, String s) {this.j = j this.s = s}} public class Test {public static void main (String [] args) throws IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // 'obj'FileOutputStream 직렬화 fos = new FileOutputStream ( 'pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (fos) oos .writeObject (obj) // 'obj'역 직렬화 FileInputStream fis = new FileInputStream ( 'pqr.txt') ObjectInputStream ois = new ObjectInputStream (fis) Main b = (Main) ois.readObject () // 다운 캐스팅 객체 System.out.println (b.j + ''+ bs) // 스트림 닫기 oos.close () ois.close ()}}

산출:
25 헬로 월드



Java의 Marker Interface에 대한이 기사로 이동

복제 가능한 인터페이스 :

이 인터페이스는 java.lang 패키지에서 찾을 수 있습니다. 복제는 복제본 또는 다른 이름을 가진 개체의 정확한 복사본을 생성하는 메커니즘입니다.
Cloneable 인터페이스는 object.clone () 메서드에 메서드가 해당 클래스의 인스턴스에 대한 필드 별 복사본을 만드는 것이 합법적임을 나타 내기 위해 클래스에 의해 구현됩니다.
복제 가능한 인터페이스를 구현하지 않고 복제 메서드를 호출하는 클래스에 대해 CloneNotSupportedException이 throw됩니다.

예:

아파치 스파크 대 하둡 맵리 듀스
import java.lang.Cloneable class javaClone implements Cloneable {int j String s // 클래스 생성자 정의 public javaClone (int j, String s) {this.j = j this.s = s} // clone () 메서드 재정의 @ 보호 된 객체 재정의 clone () throws CloneNotSupportedException {return super.clone ()}} public class Main {public static void main (String [] args) throws CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c '를 누르고 // b에서 새로운 복제 된 객체 참조 // 다운 캐스팅 javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}

산출:
18
HelloWorld

Java의 Marker Interface에 대한이 기사로 이동

원격 인터페이스 :

원격 개체는 다른 JVM, 잠재적으로 다른 호스트에서 메서드를 호출 할 수있는 개체로 정의 할 수 있습니다. 이 인터페이스는 java.rmi 패키지에 있습니다. 원격 개체는이 메서드를 직접 또는 간접적으로 구현해야합니다.

RMI :

원격 메소드 소집은 객체가 다른 JVM에서 실행되는 객체에서 메소드를 호출 할 수 있도록하는 API입니다. 스텁 및 스켈레톤 객체를 사용하여 두 응용 프로그램 간의 원격 통신을 제공합니다.

그루터기:

스텁은 클라이언트 측에 존재하고 원격 개체를 나타내는 개체로 정의 할 수 있습니다. 다음으로 구성된 정보 블록을 생성합니다.
α 원격 개체의 식별자
α 호출 할 메서드의 이름
α 원격 JVM에 대한 매개 변수

해골:

파이썬에서 정수를 뒤집는 방법

스켈레톤 객체의 주요 작업은 스텁에서 원격 객체로 요청을 전달하는 것입니다. 또한 다음과 같은 작업을 수행합니다.
α 원래 원격 개체에서 원하는 메서드를 호출합니다.
α 원격 개체에 지정된 매개 변수를 읽습니다.

Java의 Marker Interface에 대한이 기사로 이동

원격 인터페이스 구현 단계 :

원격 인터페이스를 정의하십시오.

import java.rmi. * public interface AddAll extends Remote {public int add (int r, int s) throws RemoteException}

여기서는 Remote 인터페이스가 확장되고 RemoteException은 원격 인터페이스의 모든 메소드와 함께 선언됩니다.

Java의 Marker Interface에 대한이 기사로 이동

원격 인터페이스를 구현합니다.

원격 인터페이스에 구현을 제공하는 두 가지 방법이 있습니다.
α UnicastRemoteObject 클래스 확장
α UnicastRemoteObject 클래스의 exportObject () 메서드 사용

import java.rmi. * import java.rmi.server. * public class AddAllRemote extends UnicastRemoteObject 구현 Adder {AddAllRemote () throws RemoteException {super ()} public int add (int r, int s) {return r + s}}

rmic (rmi 컴파일러)을 사용하여 스텁 및 스켈레톤 객체를 만듭니다.

스텁 및 스켈레톤 객체는 rmi 컴파일러를 사용하여 만들 수 있습니다. rmi 도구는 RMI 컴파일러를 호출하여 개체를 만듭니다.
rmic AddAllRemote

rmiregistry 도구를 사용하여 레지스트리 서비스를 시작하십시오.

rmregistry 도구를 사용하여 레지스트리 서비스를 시작할 수 있습니다. 사용자가 지정하지 않으면 기본 포트 번호가 사용됩니다.
rmiregistry 5000

Java의 Marker Interface에 대한이 기사로 이동

c에서 연결 목록을 구현하는 방법

원격 애플리케이션을 만들고 시작합니다.

import java.rmi. * import java.rmi.registry. * public class Server {public static void main (String args []) {try {AddAll stub = new AddAllRemote () Naming.rebind ( 'rmi : // localhost : 5000 / sak ', stub)} catch (예외 e) {System.out.println (e)}}}

위의 예에서 원격 개체는 sak라는 이름으로 바인딩됩니다.

Java의 Marker Interface에 대한이 기사로 이동

클라이언트 응용 프로그램을 만들고 시작합니다.

주어진 예에서 서버와 클라이언트 응용 프로그램은 동일한 시스템에서 실행되고 있습니다. 따라서 localhost를 사용하고 있습니다.

import java.rmi. * public class Client {public static void main (String args []) {try {AddAll stub = (AddAll) Naming.lookup ( 'rmi : // localhost : 5000 / sak') System.out.println (stub.add (29,18))} catch (예외 e) {}}}

다른 시스템에서 원격 개체에 액세스하려면 로컬 호스트 이름을 원격 개체가있는 IP 주소 또는 호스트 이름으로 변경해야합니다.

마커 인터페이스를 사용하면 코드를 효율적으로 분류 할 수 있습니다.

따라서 우리는이 기사의 끝까지 왔습니다. 자세한 내용은 다음을 확인하십시오. 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 제공합니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.