Question
https://school.programmers.co.kr/learn/courses/30/lessons/120822
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Code
class Solution {
public String solution(String my_string) {
StringBuilder answer = new StringBuilder(my_string);
return answer.reverse().toString();
}
}
* StringBuilder VS StringBuffer
가변 문자열 클래스로, 문자열을 효율적으로 조작할 수 있게 설계된 클래스입니다. 둘의 주요 차이점은 스레드 안전성과 성능입니다.
1. StringBuilder
- 스레드 비안전(Not thread-safe)
- StringBuilder는 모든 메서드에 대해 동기화(synchronized)되지 않았기 때문에 멀티스레드 환경에서 안전하지 않습니다.
- 한 스레드만 사용할 경우에만 안전합니다.
- 성능
- 동기화가 없으므로, 단일 스레드 환경에서는 StringBuffer보다 더 빠릅니다.
2. StringBuffer
- 스레드 안전(Thread-safe)
- StringBuffer는 모든 메서드에 대해 동기화(synchronized)가 되어 있어, 멀티스레드 환경에서 안전합니다.
- 여러 스레드가 동시에 같은 StringBuffer 객체를 수정해도 문제가 없습니다.
- 성능
- 동기화 작업이 추가되므로, 단일 스레드 환경에서는 성능이 다소 느립니다.
* 요약
- 멀티스레드 환경 : StringBuffer를 사용
- 단일 스레드 환경 : StringBuilder를 사용
→ 주어진 코드는 단일 스레드 환경이므로, StringBuilder가 더 효율적입니다.
반응형
'Coding Test > Java' 카테고리의 다른 글
[프로그래머스 / Java] Lv.0 점의 위치 구하기 (0) | 2025.01.13 |
---|---|
[프로그래머스 / Java] Lv.0 배열 원소의 길이 (0) | 2025.01.12 |
[프로그래머스 / Java] Lv.0 세균 증식 (0) | 2025.01.03 |
[프로그래머스 / Java] Lv.0 배열의 평균값 (0) | 2024.12.28 |
[프로그래머스 / Java] Lv.0 배열 뒤집기 (0) | 2024.12.22 |