String 클래스(객체)

-문자열 등의 추가/변경 시 메모리에 기존의 객체를 버리고 새로 생성하여, 객체 재사용 못함

-기존 객체는 GC(garbage )가 메모리에서 회수

 

StringBuilder/StringBuffer 클래스

-추가/변경 시 메모리에서 기존 객체를 재사용하여 메모리 이용에 효율적

-속도 : StringBuilder가 약간 더 빠름, 데이터 안정성 : StringBuffer가 약간 더 안정

 

 

 

package edu.exam05.stringbuilder06;
//string 보다  stringBuilder 가 속도 성능 좋음
public class MutableStringBuilder {
	public static void main(String[] args) {
		//StringBuilder - char[] 이 내장되어 있다
		StringBuilder sbBuf = new StringBuilder("AB");
		sbBuf.append(25);		//append : 끝에 삽입
		sbBuf.append('Y').append(true);
		System.out.println(sbBuf);
	
		sbBuf.insert(2, false);	//insert : 중간에 삽입
		sbBuf.insert(sbBuf.length(), 'Z');
		System.out.println(sbBuf);
	}
}

 

 

 

 

package edu.exam05.stringbuilder08;
//string vs stringBuilder 속도 차이 
public class CompareTime {
	public static long getStringSpeed() {
		long result = 0;
		
		String str = "A";
		String target = "B";
		long start = System.currentTimeMillis(); //시작시간
		for(int i = 0; i<100000;i++)
			str += target;
		long end = System.currentTimeMillis();   //종료시간
		
		result = end - start;
		return result;
		
	}
	public static long getStringBuilderSpeed() {
		long result = 0;	
		
		StringBuilder sb = new StringBuilder("A");
		String target = "B";
		long start = System.currentTimeMillis();
		for(int i =0;i<100000;i++) 
			sb.append(target);
		long end = System.currentTimeMillis();
		
		result = end - start;
		return result;
	}
	
	public static void main(String[] args) {
		long lStrTime = getStringSpeed();
		long lSBTime = getStringBuilderSpeed();
		
		System.out.println("String 시간: "+lStrTime);
		System.out.println("StrubgBuilder 시간: "+lSBTime);
	}
}

 

 

StringBuffer 객체 초기화

//StringBuffer 객체 초기화

StringBuffer str = new StringBuffer();

str = null			// 1. null 초기화
str.setLength(0);	// 2. 길이를 0으로 초기화

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

[JAVA] 랜덤값 구하기  (0) 2020.02.09
[JAVA] 현재 시간 구하기  (0) 2020.02.08
java에서 while(1) while(0)  (0) 2020.01.06
length , length(), size() 차이  (0) 2020.01.06
equals() 와 == 의 차이 + compareTo() 정리  (0) 2020.01.03

+ Recent posts