Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- PythonProgramming
- 보험료
- 리스트
- 수수료
- 자바스크립트
- 인출수수료
- 납입
- Java
- 변환
- 프로그래밍
- Vue.js
- 뇌출혈
- 중도인출
- 프론트엔드
- 급성심근경색증
- jQuery
- 보험
- 추가납입
- 교보생명
- 파이썬
- 심장질환
- 문자열
- 코딩
- 교보
- python
- 웹개발
- 사망
- 특약
- javascript
- 가입
Archives
- Today
- Total
SeouliteLab
[Java] String, StringBuilder, StringBuffer: 차이와 활용 본문
Java에서 문자열을 다루는 클래스로 String, StringBuilder, StringBuffer가 있다. 각각의 클래스는 문자열을 다루는 방식과 성능 면에서 차이가 있다.
- String 클래스:
- String 클래스는 불변(immutable)한 특성을 가지고 있다. 즉, 한 번 생성된 문자열은 변경할 수 없다.
- 문자열을 연결하거나 수정할 때마다 새로운 String 객체가 생성되므로, 문자열 연산이 빈번하게 일어나는 경우에는 성능 저하가 발생할 수 있다.
- 주로 문자열이 변하지 않고 고정된 경우에 사용된다.
String str = "Hello";
str += " World"; // 새로운 String 객체 생성
- StringBuilder 클래스:
- StringBuilder 클래스는 가변(mutuable)한 문자열을 다루는 데 사용됩니다. 내부적으로 가변 크기의 버퍼를 사용하여 문자열을 저장하고 수정한다.
- 문자열을 연결하거나 수정할 때 새로운 객체를 생성하지 않고 기존 객체를 수정하기 때문에 성능이 우수하다.
- 단일 스레드 환경에서 사용된다.
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World"); // 기존 StringBuilder 객체 수정
- StringBuffer 클래스:
- StringBuffer 클래스도 StringBuilder와 마찬가지로 가변 문자열을 다루는 데 사용된다. 하지만 StringBuffer는 스레드 안전(thread-safe)하도록 설계되어 있다.
- 여러 스레드가 동시에 접근할 때 발생할 수 있는 문제를 해결하기 위해 동기화된 메서드로 구성되어 있다.
- 멀티 스레드 환경에서 사용된다.
StringBuffer sb = new StringBuffer();
sb.append("Hello");
sb.append(" World"); // 기존 StringBuffer 객체 수정