Development/Java
불변 클래스(immutable class) vs 가변 클래스(mutable class)
codedragon
2018. 10. 7. 00:31
반응형
불변 클래스(immutable class)와 가변 클래스(mutable class)
· 문자열 가공에서는 가변클래스인 StringBuffer클래스를 사용합니다.
· 불변 클래스를 사용하는 경우는 멀티 스레드 환경에서 객체가 변화되는 상황이라면 불변 인스턴스를 사용하는 것이 좀 더 신뢰할 수 있는 코드를 작성할 수 있습니다.
· 즉, 하나의 객체에 접근하면서 각각의 객체가 서로 영향을 주어서는 안 되는 경우에 불변 인스턴스를 사용하면 값이 변하지 않는다는 점이 보장되게 됩니다.
JAVA - example
immutable class |
mutable class |
불변 클래스 |
가변 클래스 |
String 클래스 String 클래스와 같이 인스턴스가 한 번 생성되면 그 값을 변경할 수 없는 클래스를 불변 클래스 |
StringBuffer 클래스 StringBuffer 클래스와 같이 자유롭게 인스턴스의 값을 변경할 수 있는 클래스 |
append()나 insert() 메소드와 같은 값을 변경하는 메소드 없음 |
append()나 insert() 메소드와 같이 값을 변경하는 set() 메소드 존재 |