//문자열클래스
//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 |