울음참고 개발공부
728x90

 

 

 

단일 스레드(Single-threaded) ? 멀티 스레드(Multi-threaded)?

단일 스레드 환경은 단순한 작업이나 순차적인 작업을 처리하는 데에 적합합니다.
하지만 멀티 코어 프로세서가 널리 사용되고 있고, 병렬 처리 또는 동시성이 필요한 작업들이 증가함에 따라 멀티 스레드 환경이 더 많이 사용되고 있습니다.
멀티 스레드를 사용하면 작업을 효율적으로 분할하여 병렬로 처리할 수 있어서 성능 향상이 이루어질 수 있습니다.
하지만 스레드 간의 동기화와 자원 공유에 주의해야 하며, 스레드 안전성 문제에 대한 고려가 필요합니다.

 

 

 

String

 

  • 문자열을 나타내는 불변( immutable) 클래스
  • 문자열을 생성하고 조작하는데 사용
  • String 객체를 생성하면 그 값을 변경할 수 없으며, 문자열 연산이 필요한 경우에는 새로운 String  객체가 생성됨
  • 문자열 조작 시에 메모리 공간을 추가로 사용할 수 없다는 단점이 있지만, 스레드 안전(thread-safe) 하고 사용하기 편함

 

String str1 = "Hello";
String str2 = "World";
String result = str1 + ", " + str2;
System.out.println(result); // 출력: Hello, World

 

 

 

 

 

 

StringBuilder

 

  • 가변(mutable)문자열을 나타내는 클래스
  • StringBuilder 객체는 내부 버퍼를 사용하여 문자열을 조작
  • 문자열의 추가, 수정, 삭제 등을 효율적으로 처리할 수 있음
  • StringBuilder 는 스레드 안전하지 않으므로, 단일 스레드 환경에서 사용하는 것이 좋음

 

StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(", ");
sb.append("World");
String result = sb.toString();
System.out.println(result); // 출력: Hello, World

 

 

 

Java | StirngBuilder - 1개 이상의 문자열 클래스

StringBuilder " Java 에서 문자열을 효율적으로 처리하기 위한 클래스 " 가변적인 문자열을 다룰 수 있으며 문자열을 추가,수정,삭제하는 작업 지원 // StringBuilder 인스턴스 생성 StringBuilder sb = new String

megak.tistory.com

 

 

 

 

StringBuffer 

 

  • StringBuilder 와 비슷하지만 스레드 안전한 클래스
  • 동기화된 메서드를 제공하여 여러 스레드에서 안전하게 사용할 수 있음
  • StringBuilder와 달리 성능 면에서 약간의 오버헤드가 있을 수 있음
  • 멀티스레드 환경에서 문자열 조작이 필요한 경우 StringBuffer 를 사용하는 것이 좋음

 

StringBuffer sb = new StringBuffer();
sb.append("Hello");
sb.append(", ");
sb.append("World");
String result = sb.toString();
System.out.println(result); // 출력: Hello, World

 

 


 

 

각 클래스의 차이점
문자열을 조작하는 방식과 스레드 안전 여부 등에서 차이가 있으며,
상황에 따라 적절한 클래스를 선택하여 사용할 것

String  클래스 - 문자열 조작이 빈번하지 않은 경우나 스레드 안전이 중요하지 않은 경우
StringBuilder - 단일 스레드 환경에서 문자열 조작이 많은 경우
StringBuffer - 멀티스레드 환경에서 문자열 조작이 필요한 경우

 

 

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!