변경 가능한 자바 대 불변 자바

변경 가능 대 불변

변경 가능 대 불변

변경 가능 대 불변 자바

변경 가능 객체에는 수정할 수 있는 필드가 있고,변경 불가능 객체에는 객체를 만든 후에 변경할 수 있는 필드가 없습니다. 변경할 수 없는 개체는 만든 후에 상태를 변경할 수 없는 개체입니다. 변경 가능 및 불변은 자바의 두 가지 범주의 객체입니다. 이 글에서,우리는 자바에서 변경 및 불변 객체 사이의 차이점을 볼 수 있습니다. 또한 자바에서 변경 가능한 클래스와 변경 불가능한 클래스 간의 차이점을 보여주는 자바 코드 예제를 볼 수 있습니다.

변경 가능한 자바와 불변 자바(인포 그래픽)의 헤드 투 헤드 비교

다음은 변경 가능한 자바와 불변 자바 사이의 상위 6 가지 차이점입니다:

자유 소프트웨어 개발 과정 시작

웹 개발,프로그래밍 언어,소프트웨어 테스트&기타

변경 가능한 정보 대 변경 불가능한 정보

변경 가능 대 불변 정보

변경 가능 대 불변 자바 간의 주요 차이점

다음은 자바의 변경 가능 객체와 변경 불가능 객체 간의 주요 차이점입니다:

  • 변경 가능한 개체는 새 개체를 만들지 않고 개체의 상태를 변경할 수 있는 개체입니다. 즉,변경 가능한 객체는 생성 후 수정할 수 있습니다. 객체의 상태가 변경 될 때마다 불변 객체의 경우 우리는 새로운 객체를 얻을. 불변 객체를 다루는 동안 우리는 그것의 생성 후 객체의 상태를 변경할 수 없습니다.
  • 변경 가능한 개체는 일반적으로 개체의 내용을 변경할 수 있는 메서드를 제공하는 반면 변경 불가능한 개체는 내용을 변경할 수 있는 메서드를 제공하지 않습니다.
  • 변경 가능한 자바 클래스에서는 게터와 세터 메소드가 존재하는 반면 불변 클래스에서는 게터 메소드 만 사용할 수 있고 세터 메소드는 사용할 수 없습니다.
  • 변경 가능한 클래스는 스레드로부터 안전하지 않을 수도 있고 그렇지 않을 수도 있지만 변경할 수없는 클래스는 기본적으로 스레드로부터 안전합니다.
  • 자바에서 변경 가능한 클래스의 예는 자바입니다.유틸리티자바 레거시 클래스,래퍼 클래스,문자열 클래스는 자바에서 불변 클래스의 예입니다.

변경 가능 대 불변 자바 비교 표

변경 가능 대 불변 자바 간의 상위 비교에 대해 논의하겠습니다:

변경 가능

불변

자바 변경 가능한 객체는 생성 후 수정할 수 있습니다. 자바 불변 객체는 생성 후 수정할 수 없습니다.
기존 개체를 변경하면 새 개체가 형성되지 않습니다. 기존 객체가 변경 될 때마다 새로운 객체가 형성된다.
개체의 콘텐츠를 변경하는 메서드를 제공합니다. 개체의 내용을 변경하는 메서드는 제공하지 않습니다.
게터 및 세터 메서드는 변경 가능한 클래스에 있습니다. 게터 메서드만 있고 세터 메서드는 없습니다.
변경 가능한 클래스는 스레드로부터 안전 할 수도 있고 그렇지 않을 수도 있습니다. 변경할 수 없는 클래스는 기본적으로 스레드로부터 안전합니다.
자바에서 변경 가능한 클래스의 일반적인 예는 문자열 버퍼,문자열 빌더 및 자바입니다.유틸리티날짜. 모든 레거시 클래스,래퍼 클래스,문자열 클래스는 자바에서 불변 클래스의 일반적인 예입니다.

예제와 함께 변경 가능 및 불변 자바

예제와 함께 변경 가능 및 불변 자바는 다음과 같습니다:

예제#1-자바에서 변경 가능 클래스

이제 우리는 자바에서 변경 가능하고 불변 클래스의 생성을 보여주는 자바 코드 예제를 볼 수 있습니다.

코드:

package com.edubca.mutabledemo;
public class MutableDemo {
private String studentName;
private int rollNumber;
MutableDemo (String studentName, int rollNumber) {
this.studentName = studentName;
this.rollNumber = rollNumber;
}
public String getStudentName() {
return studentName;
}
// this setter can modify the name
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getRollNumber() {
return rollNumber;
}
// this setter can modify roll number
public void setRollNumber(int rollNumber) {
this.rollNumber = rollNumber;
}
public static void main(String args) {
MutableDemo obj = new MutableDemo ("John" , 100);
System.out.println("Original Name is " + obj.getStudentName());
System.out.println("Original Roll Number is " + obj.getRollNumber());
// update the name, and roll number as is mutable
obj.setStudentName("James");
obj.setRollNumber(102);
System.out.println("Modified Name is " + obj.getStudentName());
System.out.println("Modified Roll Number is " + obj.getRollNumber());
}
}

산출:

변경 가능한 자바 대 불변 자바-1.1

불변 자바-1 대 변경 가능.1

위의 코드는 게터와 세터와 자바에서 변경 가능한 클래스의 생성을 보여줍니다.

예제#2-자바의 불변 클래스

이제 자바에서 불변 클래스를 만드는 방법을 살펴 보겠습니다.

코드:

package com.edubca.immutabledemo;
public final class ImmutableDemo {
final String studentName;
final int rollNumber;
public ImmutableDemo (String studentName, int rollNumber) {
this.studentName = studentName;
this.rollNumber = rollNumber;
}
public String getStudentName() {
return studentName;
}
public int getRollNumber() {
return rollNumber;
}
public static void main(String args) {
ImmutableDemo obj = new ImmutableDemo ("John" , 100);
// Since no getters are available contents cannot be modified.
// Also as variables are declared final they cannot be modified
System.out.println("Name is " + obj.getStudentName());
System.out.println("Roll Number is " + obj.getRollNumber());
}
}

산출:

변경 가능한 자바 대 불변 자바-1.2

변경 가능한 자바 대 불변 자바-1.2

위의 코드는 자바 불변 클래스의 생성을 보여줍니다. 변경할 수 없는 클래스를 만드는 동안 다음 사항을 염두에 두어야 합니다:

  • 불변 클래스는 상속되지 않아야 하므로 최종 클래스여야 합니다.
  • 불변 클래스의 모든 필드는 최종적으로 작성되어야합니다.
  • 변경 가능한 객체가 불변 클래스의 필드로 사용되는 경우 해당 내용이 수정되지 않도록 특수 처리를 구현해야합니다.
  • 공용 생성자가 있어야 합니다.
  • 모든 변수에 대한 게터 메서드를 정의해야합니다.
  • 어떤 변수에도 세터 메서드가 있으면 안 됩니다.

결론

위의 논의에서,우리는 자바에서 변경 가능하고 불변의 차이에 대한 명확한 이해를 가지고있다. 또한 변경 가능하고 불변의 클래스가 어떻게 만들어 지는지 보여주는 자바 예제를 보았습니다. 변경할 수 없는 클래스는 기본적으로 스레드로부터 안전한 반면 변경할 수 있는 클래스는 스레드로부터 안전한 클래스일 수도 있고 그렇지 않을 수도 있습니다.

추천 기사

이것은 변경 가능한 자바 대 불변 자바에 대한 가이드입니다. 여기에서 우리는 또한 인포 그래픽 및 비교 테이블과 불변 자바 키 차이 대 변경 가능한 논의. 자세한 내용을 보려면 다음 문서를 참조할 수도 있습니다–

  1. 자바 버퍼리더
  2. 자바의 문자열 버퍼 클래스
  3. 자바 런타임 예외
  4. ()
0 주식

답글 남기기

이메일 주소는 공개되지 않습니다.