변경 가능한 객체에는 수정 가능한 필드가 있습니다. 불변 객체에는 객체가 생성된 후 변경할 수 있는 필드가 없습니다. 불변 객체는 생성된 후에 상태가 변경될 수 없는 객체입니다. Mutable과 Immutable은 Java의 두 가지 객체 범주입니다. 이 기사에서는 Java에서 변경 가능한 객체와 불변 객체의 차이점을 살펴보겠습니다. 또한 Java에서 가변 클래스와 불변 클래스의 차이점을 보여주는 Java 코드 예제를 살펴보겠습니다.
광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사다음은 변경 가능 Java와 불변 Java의 6가지 주요 차이점입니다.
다음은 Java에서 변경 가능한 객체와 불변 객체 간의 주요 차이점입니다.
Mutable과 Immutable Java의 주요 비교에 대해 논의해 보겠습니다.
변경 가능
Mutable |
Immutable |
Java Mutable object can be modified after its creation. | Java Immutable object cannot be modified after its creation. |
No new object is formed when changes are made to an existing object. | Whenever an existing object is changed, a new object is formed. |
It provides methods to change the content of an object. | It does not provide methods for changing the content of an object. |
Getter and setter methods are present in mutable classes. | Only getter methods are present and not setter methods. |
Mutable classes may or may not be thread-safe. | Immutable classes are thread-safe by default. |
Some common examples of mutable classes in java are StringBuffer, StringBuilder, and java.util.Date. | All Legacy classes, Wrapper classes, String class, are common examples of Immutable classes in java. |
불변
예시가 포함된 변경 가능 및 불변 Java는 다음과 같습니다.
이제 Java에서 변경 가능 및 불변 클래스 생성을 보여주는 Java 코드 예제를 살펴보겠습니다.
코드:
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()); } }
출력:
위 코드는 getter 및 setter를 사용하여 Java에서 변경 가능한 클래스를 생성하는 방법을 보여줍니다.
이제 Java에서 불변 클래스를 생성하는 방법을 살펴보겠습니다.
코드:
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()); } }
출력:
위 코드는 Java 불변 클래스 생성을 보여줍니다. 불변 클래스를 생성하는 동안 다음 사항에 유의해야 합니다.
위의 논의를 통해 우리는 Java에서 변경 가능과 불변의 차이점을 명확하게 이해했습니다. 또한 가변 클래스와 불변 클래스가 생성되는 방법을 보여주는 Java 예제를 살펴보았습니다. 불변 클래스는 기본적으로 스레드로부터 안전한 반면, 변경 가능한 클래스는 스레드로부터 안전할 수도 있고 그렇지 않을 수도 있다는 점에 유의하는 것이 중요합니다.
위 내용은 변경 가능 및 불변 Java의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!