# String
- 변경 불가능한(immutable) 클래스
- 즉, string 객체가 생성되면 그 값은 변경되지 않고, 새로운 객체로 추가 및 변경이 된다.
# StringBuffer
- java에서 stringbuffer는 가변한 문자열을 처리하기 위한 클래스이다.
- 즉, 새로운 문자열을 추가하거나 변경하게 되면 기존의 객체로 추가 및 변경이 된다.
# StringBuilder
- java에서 stringbuilder는 가변한 문자열을 처리하기 위한 클래스이다.
- stringbuffer와 마찬가지로 새로운 문자열을 추가하거나 변경하게 되면 기존의 객체로 추가 및 변경이 된다.
- stringbuffer와 다른게 멀티쓰레드 환경에서 안정적이지 않으며, stringbuilder는 싱글쓰레드 환경에서 stringbuffer보다 더 빠른 성능을 가진다.
# 불변한클래스
- 최초 객체를 생성 한 뒤 상태를 변경 할 수 없는 것을 의미한다.
- 최초 생성한 객체에 추가나 변경이 발생하는 경우 새로운 객체가 다시 생성이 되어 구성된다.
- Java에서는 String, Integer, Float, Double, Long, Short, Byte, Character, BigDecimal, BigInteger 등의 클래스가 불변 클래스에 속한다.
# 가변한클래스
- 최초 객체를 생성 한 뒤 상태를 변경 할 수 있는 것을 의미한다.
- 최초 생성한 객체에 추가나 변경이 발생하는 경우 기존의 객체에 상태가 변경되어 구성된다.
- Java에는 StringBuffer, StringBuilder, ArrayList, LinkedList, HashMap, HashSet, TreeMap, TreeSet 등의 클래스가 가변 클래스에 속한다.
# 싱글쓰레드(single thread)
- 하나의 코드 블록을 실행하는 동안 다른 코드 블록이 실행되지 않는 경우이다.
- 즉, 동시에 하나의 작업만 실행할 수 있다.
# 멀티쓰레드(multi thread)
- 두개 이상의 쓰레드가 동시에 실행되는 것을 말한다.
- 여러개의 코드 블록이 동시에 실행될 수 있으므로, 멀티쓰레드 환경에서는 동기화 문제가 발생할 수 있으며, 이를 해결하기 위해 락과 언락 메커니즘이 사용된다.
'IT > 용어정리' 카테고리의 다른 글
클라이언트(Client)와 서버(Server)란? (0) | 2023.07.14 |
---|---|
컴파일러 vs 인터프리터 (0) | 2023.07.12 |
프레임워크와 라이브러리? (0) | 2023.07.03 |
용어 정리2 (0) | 2023.04.13 |
용어 정리1 (0) | 2023.04.11 |