불변 클래스(immutable class) vs 가변 클래스(mutable class)
CODEDRAGON ㆍDevelopment/Java
반응형
불변 클래스(immutable class)와 가변 클래스(mutable class)
· 문자열 가공에서는 가변클래스인 StringBuffer클래스를 사용합니다.
· 불변 클래스를 사용하는 경우는 멀티 스레드 환경에서 객체가 변화되는 상황이라면 불변 인스턴스를 사용하는 것이 좀 더 신뢰할 수 있는 코드를 작성할 수 있습니다.
· 즉, 하나의 객체에 접근하면서 각각의 객체가 서로 영향을 주어서는 안 되는 경우에 불변 인스턴스를 사용하면 값이 변하지 않는다는 점이 보장되게 됩니다.
JAVA - example
immutable class |
mutable class |
불변 클래스 |
가변 클래스 |
String 클래스 String 클래스와 같이 인스턴스가 한 번 생성되면 그 값을 변경할 수 없는 클래스를 불변 클래스 |
StringBuffer 클래스 StringBuffer 클래스와 같이 자유롭게 인스턴스의 값을 변경할 수 있는 클래스 |
append()나 insert() 메소드와 같은 값을 변경하는 메소드 없음 |
append()나 insert() 메소드와 같이 값을 변경하는 set() 메소드 존재 |
'Development > Java' 카테고리의 다른 글
The Java™ Tutorials (0) | 2018.10.16 |
---|---|
클래스의 이해, 클래스의 구조 - 클래스 헤더, 멤버 필드 (Field), 멤버 메서드 (Method), 멤버(Member) (0) | 2018.10.11 |
Joda-Time 라이브러리 다운받기 (0) | 2018.10.01 |
이벤트 처리 도식도, 자바에서의 이벤트 처리, 이벤트모델 구성요소 (0) | 2018.09.22 |
error: Class names, 'HelloWorld', are only accepted if annotation processing is explicitly requested (0) | 2018.09.21 |