Skip to content

Instantly share code, notes, and snippets.

@ksy90101
Created December 6, 2019 03:03
Show Gist options
  • Save ksy90101/ea18b9087e7d4075fb4173a7cb38789a to your computer and use it in GitHub Desktop.
Save ksy90101/ea18b9087e7d4075fb4173a7cb38789a to your computer and use it in GitHub Desktop.
[프로그래머스] 자바 중급 - Part2. java.lang패키지 - 스트링 클래스 문제점
package Part2;
public class StringExam {
public static void main(String[] args) {
// String클래스 : 불변클래스, 문자열을 다룰때 사용하는 클래스
String str1 = "hello world";
String str2 = str1.substring(5);
System.out.println(str1); // str1은 substring을 사용했어도 변하지 않음
System.out.println(str2);
String str3 = str1 + str2;
System.out.println(str3);
// String + String을 실행했을때 내부적으로 일어나는 작업
String str4 = new StringBuffer().append(str1).append(str2).toString();
System.out.println(str4);
String str5="";
for (int i = 0; i < 100; i++) {
str5 += "*";
}
// new연산자가 많이 사용될수록 프로그램 속도가 느려짐
// 따라서 위에 사용했던 for문을 사용하는 것은 적절하지가 않음
System.out.println(str5);
StringBuffer sb = new StringBuffer();
// 위 for문과 달리 new연산자가 한번만 사용되기때문에 훨씬 빠름
for (int i = 0; i < 100; i++) {
sb.append("*");
}
String str6 = sb.toString();
System.out.println(str6);
// 따라서 String 연산을 반복문에서 사용하는 것을 최대한 피하는 것이 좋음
// 굳이 사용해야 한다면 StringBuffer를 이용
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment