Java에서 외부화란 무엇입니까? 인터페이스, 기능 및 예

게시 됨: 2021-02-04

외부화가 무엇인지 대답하려면 java 에서 직렬화를 사용자 정의하기 위해 구현되는 공통 메커니즘이라고 말할 수 있습니다. Java 직렬화가 그다지 효율적이지 않다는 주요 측면과 함께 사용되므로 여러 속성 및 속성을 보유하는 부풀려진 개체가 있을 때 외부 사용자 정의 매개변수가 사용됩니다.

목차

직렬화 및 외부화란 무엇입니까?

직렬화 - 객체의 데이터를 바이트 스트림으로 구성하는 데 사용되는 메커니즘이며 프로세스는 주로 RMI, JMS, JPA 유형의 기술로 구현됩니다. 다른 유형은 직렬화의 기능과 프로세스를 역전시키는 메커니즘으로 구성되며 역직렬화라고 합니다. 이름에서 알 수 있듯이 직렬화의 기능은 Java에 있는 객체를 직렬화하는 것입니다.

외부화 - 직렬화 메커니즘을 사용자 정의하는 데 사용되는 메커니즘으로 정의됩니다. 블로트웨어는 빠르고 반응이 빠르지 않습니다. 이는 전체 프로세스를 사용자 지정하기에 충분히 효율적이고 반응이 빠른 우수한 메커니즘에 대한 필요성을 생성합니다.

직렬화에서 Java 프로그래밍 기계는 객체를 쓰고 읽는 프로세스에 응답합니다. 이것은 프로그래머가 직렬화 프로세스에 대해 걱정할 필요가 있기 때문에 많이 사용되는 시나리오입니다. 이러한 경우 기본 작업 직렬화는 로그인 ID 및 암호와 같은 중요한 자격 증명을 저장하지 않습니다.

그러나 프로그래머가 동일한 자격 증명을 보호해야 할 필요가 있는 경우 외부화는 직렬화 중에 데이터 읽기 및 쓰기 개체의 데이터 처리에 대한 전체 제어 권한을 부여하는 목적을 증명합니다.

확인: 인기 있는 Java 프레임워크

외부화 가능한 인터페이스

직렬화 및 역직렬화 중에 개체 읽기 및 쓰기를 조정해야 하는 경우 인터페이스가 구현됩니다. 따라서 java.io.externalisable 인터페이스가 있는 객체 클래스의 필요성은 사용자와 프로그래머가 writeExternal()을 작성 하고 readExternal() 메서드 에서 객체를 읽음 으로써 객체 상태에 대한 사용자 정의 코드를 구현하는 데 도움이 됩니다.

더 나은 아이디어를 위해 두 가지 방법을 모두 이해합시다.

readExternal() 은 객체가 입력을 받을 때 작동합니다. 개체, 문자열 및 배열에 대해 write Object 메서드를 호출하여 데이터 입력 메서드에 의해 내용이 원래 컨텍스트로 복원됩니다 .

writeExternal()은 객체가 입력을 받을 때 작동하고 데이터 출력 메서드는 객체, 문자열, 배열에 대해 read Object 메서드를 호출하여 내용을 저장합니다 .

특징

외부화는 외부 읽기 외부 쓰기 메소드 를 우회하여 애플리케이션에 대한 논리 제어를 구현하는 데 도움이 됩니다 .

외부화는 프로그래머가 자바 객체를 외부화하는 동안 변수를 제거하기 위해 양심과 논리로 코드를 작성할 수 있게 함으로써 효과적인 방법임을 입증했습니다.

외부화 방법은 구현 접근 방식에 대한 완전한 수동 제어를 제공하며 개체 직렬화 및 상속도 암시될 수 있습니다.

또한 읽기: Java 인터뷰 질문

예시

// 상호 작용

가져오기 java.io.*;

클래스 Car 구현 Externalizable {

정적 정수 나이;

문자열 이름;

정수년;

공공 자동차()

{

System.out.println("기본 생성자 호출");

}

자동차(문자열 n, 정수 y)

{

this.name = n;

올해 = y;

나이 = 10;

}

@우세하다

공개 무효 writeExternal(ObjectOutput 출력)

IOException 발생

{

out.writeObject(이름);

out.writeInt(나이);

out.writeInt(연도);

}

@우세하다

공개 무효 readExternal(ObjectInput 입력)

IOException, ClassNotFoundException 발생

{

이름 = (문자열)in.readObject();

연도 = in.readInt();

나이 = in.readInt();

}

@Override 공개 문자열 toString()

{

return("이름: " + 이름 + "\n"

+ "연도: " + 연도 + "\n"

+ “나이: ” + 나이);

}

}

공개 클래스 ExternExample {

공개 정적 무효 메인(String[] 인수)

{

자동차 자동차 = new Car("샤이니", 1995);

자동차 신차 = null;

// 자동차 직렬화

노력하다 {

파일출력스트림

= 새로운 FileOutputStream("gfg.txt");

ObjectOutputStream 그래서

= 새로운 ObjectOutputStream(fo);

so.writeObject(자동차);

so.flush();

}

catch(예외 e) {

System.out.println(e);

}

// 차를 직렬화 해제

노력하다 {

파일입력스트림 fi

= 새로운 FileInputStream("gfg.txt");

ObjectInputStream 시

= 새로운 ObjectInputStream(fi);

newcar = (자동차)si.readObject();

}

catch(예외 e) {

System.out.println(e);

}

System.out.println("원래 자동차는:\n" + car);

System.out.println("새 자동차는:\n" + newcar);

}

}

산출:

호출된 기본 생성자

원래 자동차는 다음과 같습니다.

이름: 샤이니

연도: 1995

나이: 10

새 차는 다음과 같습니다.

이름: 샤이니

연도: 1995

나이: 10

이 예제는 외부화 가능한 객체가 다시 생성될 때 인스턴스가 인수가 없는 공개 생성자로 트리거될 때 readExternal 메서드를 호출하는 경향이 있음을 나타내는 고전적인 예제입니다. 따라서 외부화 가능한 인터페이스의 도움으로 Java 클래스 비유를 완전히 제어할 수 있습니다.

따라서 외부화를 사용하는 동안 모든 필드 상태가 작성된 대로 정확한 순서로 있어야 하는 것이 필수적이며 중요합니다.

또한 읽기: Java 프로젝트 아이디어 및 주제

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

따라서 Java에서 외부화가 무엇인지 묻는 질문을 받으면 제공해야 하는 사용자 정의 직렬화로 인해 중요성이 가중되고 직렬화를 사용자 정의하고 구현 접근 방식에 대한 완전한 제어를 제공한다고 말할 수 있습니다. readExternal 및 writeExternal 메서드는 클래스에서 덮어써야 합니다. 직렬화보다 훨씬 더 나은 성능을 제공합니다.

upGrad와 연결하여 전체 스택 개발에 대한 Executive PG 프로그램 과정을 통해 Java를 더 잘 이해하고 Rs 10,000부터 시작하여 온라인 강의에 액세스하여 학습 곡선을 향상시킬 수 있습니다.

Java의 인터페이스는 무엇입니까?

인터페이스는 구현이 없고 메소드 서명의 그룹일 뿐인 Java의 유형 중 하나입니다. 이 인터페이스를 만들 수 없습니다. 이 사실 뒤에 숨은 이유는 이러한 인터페이스가 메서드 서명의 모음일 뿐이기 때문입니다. 인터페이스를 만든 후에는 새 메서드를 계속 추가할 수 없습니다. 예를 들어, 클래스 외부에서 클래스 동작을 수정하는 데 도움이 되는 메서드를 java.Aspect 인터페이스에 추가할 수 없습니다. 이것은 객체 지향 프로그래밍 원칙에 위배되기 때문입니다. 실제로 인터페이스는 Java 주석 확장일 뿐입니다. 코드를 가볍게 유지하려면 인터페이스를 사용해야 합니다.

Java에서 외부화란 무엇입니까?

외부화는 객체가 상태를 변경 가능하게 만드는 능력입니다. 외부화는 종속성 반전 원칙 및 인터페이스 분리 원칙을 구현하기 위해 Singleton, Factory 및 Prototype과 같은 디자인 패턴에서 사용됩니다. 외부화는 Java의 기본 제공 기능이 아니지만 해당 기능을 클래스에 추가할 수 있습니다. 외부화는 Java에서 객체를 문자 스트림으로 변환하는 프로세스입니다. 바이너리 형식의 파일에 개체를 저장하는 데 사용되는 메커니즘입니다. 바이트 시퀀스로 파일에 문자 데이터를 저장하는 데 사용됩니다. 데이터는 Java 프로그램의 후속 실행에서 읽을 수 있습니다.

자바 프로그래밍 언어의 특징은 무엇입니까?

Java는 1995년 Sun Microsystems에서 처음 출시한 프로그래밍 언어 및 컴퓨팅 플랫폼입니다. 그 이후로 여러 업데이트가 릴리스되었으며 최신 버전은 Java 11입니다. Java는 Java 가상 머신을 지원할 수 있는 모든 플랫폼에서 실행되도록 의도되었으므로 또한 프로그래밍 플랫폼입니다. 브라우저만 있는 환경에서 실행할 수 있지만 애플리케이션 프로그래밍 인터페이스 또는 API라고 하는 프로그램 세트에서 다양한 버전의 JVM(Java Virtual Machine)과 함께 가장 일반적으로 사용됩니다.