Created
December 6, 2019 03:03
-
-
Save ksy90101/ea18b9087e7d4075fb4173a7cb38789a to your computer and use it in GitHub Desktop.
[프로그래머스] 자바 중급 - Part2. java.lang패키지 - 스트링 클래스 문제점
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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