자바

스트링 클래스의 문제점

khon98 2020. 11. 2. 22:47

String Class - 문자열을 다룰 때 사용하는 클래스(불변 클래스)

 

자바 언어는 new 연산자가 많이 사용될수록 프로그램의 속도가 느려짐

 

--------------------------------

package JavaStudy;

public class StringEx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str1 = "hello world";
		String str2 = str1.substring(5); // substring 메서드는 5번째 부터 문자열을 잘라서 새로운 문자열을 반환하는 메서드
		System.out.println(str1); // str1 자체는 변화 하지 않음
		System.out.println(str2);
		
		// String Class를 사용할때 문제가 발생하는 경우
		String str3 = str1 + str2; // 문자열과 문자열은 +로 결합 할 수 있음
		System.out.println(str3);
		
		String str4 = new StringBuffer().append(str1).append(str2).toString();
		System.out.println(str4); // 문자열을 +로 붙이게 되면 항상 StringBuffer라는 객체가 만들어짐
		
		String str5 = "";
		for(int i = 0; i < 100; i++) {
			str5 = str5 + "*";
		}
		System.out.println(str5);
		
		// 빈번하게 String의 + 연산이 일어나게 될 경우
		StringBuffer sb = new StringBuffer();
		for(int i = 0; i < 100; i++) {
			sb.append("*");
		}
		String str6 = sb.toString();
		System.out.println(str6);
	}

}