일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- AJIT
- 타입 단언
- useLayoutEffect
- JavaScript
- 회고
- 클라이언트 상태 관리 라이브러리
- prettier-plugin-tailwindcss
- Sparkplug
- 좋은 PR
- Custom Hook
- 암묵적 타입 변환
- msw
- react
- linux 배포판
- type assertion
- Recoil
- Render Queue
- TypeScript
- 명시적 타입 변환
- 25년 2월
- docker
- helm-chart
- Microtask Queue
- 프로세스
- zustand
- jotai
- mocking
- Headless 컴포넌트
- Compound Component
- CS
Archives
- Today
- Total
구리
[Java] StringBuilder 사용하는 이유? 본문
백준 사이트에서 알고리즘 문제를 풀다가 처음으로 StringBuilder를 접하였습니다.
String 대신으로 사용하는 것 같고 append() 메소드 호출로 원하는 문자열을 추가할 수 있는 것 같은데... 성능면에서 더 좋은 것 같아서 String 대신 쓰는 것 같으니 사용하는 이유를 자세히 알지 못하여 알아보았습니다.
String은 불변(immutable) 객체로 값을 변경할 수가 없으며 만약 String a, String b라는 2개의 객체를 더할 경우 (+)를 이용한 값 변경은 기존에 String에 들어있던 값을 버리고 새로운 값을 할당하기에 해당 연산이 많아진다면 성능이 떨어지게 됩니다.
그래서 사용하는 것이 StringBuilder 인데 변하는 녀석으로 (mutable) 문자열을 더할 때 새로운 객체를 생성하는 것이 아닌 기존의 데이터에 더하는 방식으로 속도도 빠르며 상대적으로 부하가 적다고 합니다.
[간단한 사용법]
StringBuilder sb = new StringBuilder();
sb.append("hello!\n");
sb.append("Java&");
sb.append("Python");
System.out.println(sb);
[관련 메소드]
StringBuilder append(값) | StringBuilder 뒤에 값을 삽입 |
StringBuilder insert(인덱스, 값) | 특정 인덱스부터 값을 삽입 |
StringBuilder delete(인덱스, 인덱스) | 특정 인덱스부터 인덱스까지 값을 삭제 |
int length() | StringBuilder 길이(int) 반환 |
StringBuilder reverse() | 글자 순서를 뒤집음 |
'Java' 카테고리의 다른 글
[Java] EOF(End of File) 처리 (0) | 2021.09.07 |
---|---|
[Java] BufferedReader, BufferedWriter (0) | 2021.09.07 |
동기 비동기 방식(Asynchronous processing model) (0) | 2021.06.09 |
자바 디자인 패턴 : Factory Method Pattern (0) | 2021.06.07 |
자바 디자인 패턴 : SingleTone (0) | 2021.04.29 |