Java에서 Mutable과 Immutable의 차이점은 무엇입니까?



이 기사는 Java의 Mutable 및 Immutable에 대한 포괄적 인 안내서이며 Java 문자열이 변경 불가능한 이유에 대해서도 설명합니다.

Java는 가장 인기있는 응용 프로그램을 만들기위한 다양한 개념을 제공하며 이러한 개념 중 하나는 Java에서 Mutable And Immutable입니다. 글쎄,이 개념은 객체 생성 후 필드를 변경하는 데 의존하므로 프로그래밍을 쉽게합니다. . 따라서 Java의 변경 가능 및 불변에 대한이 기사에서는 다음 주제에 대해 논의 할 것입니다.

Mutable 객체는 무엇입니까?





개체를 만든 후 필드와 상태를 변경할 수있는 개체를 변경 가능한 개체라고합니다. : java.util.Date, StringBuilder 등

불변 객체 란 무엇입니까?



그만큼 사물 개체가 생성 된 후에는 아무것도 변경할 수없는 것을 불변 개체라고합니다. : Integer, Long 등과 같은 박스형 기본 개체

이제 Java에서 변경 가능하고 불변하는 것이 무엇인지 알았으므로 앞으로 나아가서 둘의 차이점을 살펴 보겠습니다.

변경 가능한 객체와 변경 불가능한 객체의 차이점



Java에서 변경 가능한 객체와 변경 불가능한 객체의 차이점은 다음 표를 참조하십시오.

변하기 쉬운 불변
개체 생성 후 필드를 변경할 수 있습니다.개체 생성 후에는 필드를 변경할 수 없습니다.
일반적으로 필드 값을 수정하는 방법을 제공합니다.필드 값을 수정할 방법이 없습니다.
Getter 및 Setter 메서드 있음Getter 메서드 만 있음
예 : StringBuilder, java.util.Date예 : 문자열, Integer, Long 등과 같은 Boxed 기본 객체

이제 변경 가능한 객체와 변경 불가능한 객체의 차이점을 알았으므로 이러한 객체를 만드는 방법을 살펴 보겠습니다. 클래스.

Mutable 클래스를 만드는 방법은 무엇입니까?

Java에서 변경 가능한 클래스를 만들려면 다음 요구 사항이 충족되는지 확인해야합니다.

  1. 방법 제공 필드 값을 수정하려면
  2. Getter 및 Setter 메서드

다음 코드를 고려하십시오.

package edureka public class example {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {example obj = new example ( 'Machine Learning') System.out.println (obj.getName ()) // 이름 업데이트,이 객체는 변경 가능 obj.setName ( 'Machine Learning Masters') System. out.println (obj.getName ())}}

다음 출력이 표시됩니다.

변경 가능한 객체 출력-Java- Edureka에서 변경 가능 및 변경 불가능

이제 변경 가능한 클래스를 만드는 방법을 알았으므로이 기사의 다음 부분에서 변경 불가능한 클래스를 만드는 방법을 살펴 보겠습니다.

불변 클래스를 만드는 방법은 무엇입니까?

Java에서 변경 불가능한 클래스를 작성하려면 다음 요구 사항이 충족되는지 확인해야합니다.

hadoop 개발자 역할 및 책임
  1. 클래스는 다음과 같이 선언되어야합니다. 결정적인 연장 할 수 없도록 요
  2. 직접 액세스가 허용되지 않도록 모든 필드를 비공개로 설정해야합니다.
  3. 세터 메서드 없음
  4. 변경 가능한 모든 필드를 최종적으로 만들어 한 번만 할당 할 수 있도록합니다.
package edureka public class exampleimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {example obj = new example ( '머신 러닝') System.out.println (obj.getName ())}}

아래 출력이 표시됩니다.

자, 이제 변경 가능한 객체와 변경 불가능한 객체에 대해 알았으니 Java에서 문자열은 변경할 수 없음을 알려 드리겠습니다. 이제 Java에서 문자열이 변경 불가능한 이유에 대한 질문이 제기되었을 수 있습니다. 따라서이 기사의 다음으로 동일한 내용을 살펴 보겠습니다.

Java에서 문자열을 변경할 수없는 이유는 무엇입니까?

Java는 다음 개념을 사용합니다. . 따라서 단일 객체를 참조하는 참조 변수가 많은 예를 고려하면 하나의 참조 변수가 목적 , 자동으로 다른 모든 참조 변수가 영향을받습니다. 또한 효과적인 자바 ,4 장, 73 페이지, 2 판, 다음은 Immutable 클래스를 사용하는 이유입니다.

  • 불변 객체는 간단합니다
  • 이러한 개체는 동기화가 필요하지 않으며 본질적으로 스레드로부터 안전합니다.
  • 불변 객체는 다른 객체를위한 좋은 빌딩 블록을 만듭니다.

예를 들어 설명해야한다면

변수가 있다고합시다 샘플 스트링 , 문자열“ 기계 학습 “. 이제이 문자열을 다른 문자열과 연결하면 ' 석사 ', 그런 다음 ' 기계 학습 ”는 변경되지 않습니다. 대신 '에 대한 새 개체가 생성됩니다. 기계 학습 마스터 “. 아래 이미지를 참조하십시오.

위 이미지에서 볼 수 있듯이 샘플 스트링 참조 변수는 '기계 학습'을 참조하지만 두 개체를 만든 후에도 다른 문자열은 참조하지 않습니다. 이것으로 우리는 Java의 Mutable 및 Immutable에 대한이 기사를 마칩니다. 위에서 논의한 모든 측면에 대해 여러분이 분명히 이해하시기 바랍니다.

이제 Java의 기본 사항을 이해 했으므로 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

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