본문 바로가기
CLASS/JAVA

#13-1 / String, StringBuilder, StringBuffer

by eungSe__ 2024. 5. 20.
⚡  new String()
같은 자료형 또는 자료형 클래스라고 할지라도 new가 붙었다면
인스턴스 영역(메모리)으로 변경되므로 비교하는 상황이 달라질 수 있다
String a = "a1234";
String b = "a1234";
String c = new String("a1234"); //new : 인스턴스 생성 == RAM에 올라갔단 뜻
String d = new String("a1234");

System.out.println(a==b); //true
System.out.println(a.equals(b)); //true
System.out.println(a==c); //false
System.out.println(a.equals(c)); //true
System.out.println(c==d); //false

 

⚡ StringBuffer,StringBuilder
StringBuilder,StringBuffer : 멀티스레드 이용(스레드란? 작업공간)
웹 자체는 단일스레드이기 때문에 웹에서는 StringBuilder를 많이 사용함
String보다 빨라서 게시판 등 작업에 많이 사용
//얘네도 new이므로 메모리 올라감

//멀티 스레드가 빠름,단일스레드일 경우 속도가장느림 but 안정성 good,로스x
  //앱에서 많이 사용
StringBuffer sb = new StringBuffer(); 
sb.append("홍길동");
sb.append("님 환영합니다");
System.out.println(sb); //홍길동님 환영합니다

//단일 스레드가 빠름,로스발생 확률있음(빠르지만 불안정)
  //웹 자체는 단일스레드이기 때문에 웹에서는 얘를 많이 사용함
StringBuilder sb2 = new StringBuilder(); 
sb2.append("이순신");
sb2.append("포인트는 5000");
System.out.println(sb2); //이순신포인트는 5000

'CLASS > JAVA' 카테고리의 다른 글

#13-3 / Map클래스배열(Key배열)  (0) 2024.05.20
#13-2 / Thread  (0) 2024.05.20
#12 / remind2  (0) 2024.05.17
#11-2 / 배열을 이용한 예외처리  (0) 2024.05.16
#11-1 / Exception : 예외처리  (0) 2024.05.16