가능한 중복 :
Why do we need immutable class?클래스를 불변으로 만드는 이유는 무엇입니까?
사람이 나에게 자바 불변 클래스의 실제 사용의 예를 들어 주실 수 있습니까? 진정한 목적은 무엇입니까? 예를 들어, String이 불변 인 이유는 무엇입니까
가능한 중복 :
Why do we need immutable class?클래스를 불변으로 만드는 이유는 무엇입니까?
사람이 나에게 자바 불변 클래스의 실제 사용의 예를 들어 주실 수 있습니까? 진정한 목적은 무엇입니까? 예를 들어, String이 불변 인 이유는 무엇입니까
불변의 클래스는 불변으로, 오브젝트에 대한 기존의 참조를 가지는 오브젝트는 엉망이되어, 머물러있는 오브젝트 내의 정보에 의존합니다. 어떤 경우에는 효율성에 약간의 타격을 주지만, 신뢰성과 안정성은 절충안입니다. 기본적으로 사용되는 각 메소드에 대해 새로운 객체가 생성된다는 의미입니다.
한 가지 이유는 변경 불가능한 클래스가 스레드로부터 안전하다는 것입니다.
공유 가능 상태를 올바르게 관리하기가 어렵 기 때문에 (때로는 비효율적이기 때문에). String
이 변경 불가능한 경우 각 메소드는 스레드로부터 안전해야하며 문자열의 내용을 변경할 수 있어야합니다. 이 경우 변경할 수 없다는 것은 잠금이 필요 없다는 것을 의미합니다. 문자열로 수행 할 수있는 유일한 작업은 읽을 수 있기 때문입니다.
이것은 기능 프로그래밍 언어의 주요 이점 중 하나입니다. 모든 상태는 변경 불가능합니다 (즉, 파괴적인 업데이트는 허용되지 않습니다).
자바에는'const'가 없기 때문에. –
누군가가 쓸 때 사랑 - 결과를 사용하지 않고 astring.replace (str1, str2) –