문자열 처리 클래스 String, StringBuilder, StringBuffer에 대해 깊이 있게 파헤쳐 보겠습니다.개발자분들이 반복문 내에서 무심코 + 연산자로 문자열을 이어 붙이는 경우를 자주 봅니다.트래픽이 몰리는 운영 환경에서는 이런 작은 습관이 시스템에 치명적인 OutOfMemoryError나 심각한 GC(Garbage Collection) 병목을 유발할 수 있습니다.단순히 "문자열을 더할 때는 StringBuilder를 써라"라는 표면적인 암기식 지식을 넘어, JVM 메모리 구조, 바이트코드 레벨의 컴파일러 최적화, 그리고 멀티스레드 환경의 동기화 메커니즘까지, 아키텍트의 시각에서 이 세 가지 클래스의 근본적인 차이를 확인해 보겠습니다. 1. String: 불변의 미학과 함정Java에서 S..
Java를 공부하거나 코딩 테스트, 실무 API 처리, 문자열 가공을 하다 보면 자주 찾게 되는 것이 바로 기본 메소드입니다.특히 아래처럼 자주 막히게 됩니다.문자열 자르기, 포함 여부 확인은 어떤 메소드를 써야 하는가?List 정렬, 중복 제거, 부분 추출은 어떻게 하는가?Map에서 키 존재 여부 확인이나 기본값 처리는 어떻게 하는가?Arrays, Math, 형 변환 관련 메소드 중 실무에서 자주 쓰는 것은 무엇인가?Set, Stream, StringBuilder, Comparator 같은 문법/도구는 언제 꺼내 써야 하는가?기존처럼 메소드를 무작정 나열해 두면 한 번 훑고 끝나기 쉽습니다. 그래서 이번 글은 실제로 자주 찾는 상황 기준으로, String → 형 변환 → 배열/리스트 → Map → Qu..

