Develop/JAVA

JAVA 문자열클래스(String,StringBuffer, StringBuilder)

roalwh 2023. 10. 17. 20:52

 

//문자열클래스
//String 객체와 메모리
//문자열을 다루는 String클래스(객체)는 데이터가 변하면 메모리상의 변화가 많아 속도가 느리다.
//기존에 있던 String str="java" 가 메모리에 있음.
//여기에 str = str+"_8"을 추가할떄 기존의 객체를 버리고 새로운 메모리에 생성 -> 기존의 객체는 GC가 지운다.
//GC가 삭제하기전엔 기존의 객체도 메모리에 남아있음.
//String의 단점을 보완한 StringBuffer, StringBuilder 가 있음.
//데이터가 변경되면 메모리에서 기존객체를 재활용
//속도는 StringBuilder좀더 빠르며 StringBuffer가 데이터 안정성이 조금더 좋음 
public class Mainclass {

	public static void main(String[] args) {
		
		//String str = "JAVA";
		
		//String 생성
		String str = new String("JAVA");
		System.out.println("str : " + str);
		//str = str+"_8"을 추가할떄 기존의 객체를 버리고 새로운 메모리에 생성 -> 기존의 객체는 GC가 지운다.
		str = str + "_8";
		System.out.println("str : " + str);
		
		//StringBuffer
		//데이터가 변경되면 메모리에서 기존객체를 재활용
		StringBuffer sf = new StringBuffer("JAVA");
		System.out.println("sf : " + sf);
		sf.append("World");
		
		System.out.println("sf : " + sf);
		System.out.println("sf.length(); : " + sf.length());
		sf.insert(sf.length(), "~~~~");
		
		System.out.println("sf : " + sf);
		
		//4번이후 8번까지 문자 삭제
		sf.delete(4 , 8);
		System.out.println("st : "+ sf);
		
		StringBuilder sb = new StringBuilder("JAVA World!!");
		System.out.println("");
		}
}
 
결과값
str : JAVA
str : JAVA_8
sf : JAVA
sf : JAVAWorld
sf.length(); : 9
sf : JAVAWorld~~~~
st : JAVAd~~~~

 

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

JAVA 객체지향 프로그래밍  (0) 2023.10.21
JAVA Collections(List,Map)  (0) 2023.10.17
JAVA 람다식  (0) 2023.10.17
JAVA 추상클래스  (0) 2023.10.17
JAVA 인터페이스  (0) 2023.10.17