Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Java] String과 StringBuilder 본문
값변경에 잘쓰이지 않는 String
public class StringTest {
public static void main(String[] args) {
String str = "안녕하세요";
System.out.println(str); // 안녕하세요
str = "Hello";
System.out.println(str); // Hello
}
}
❓ 수정이 잘되는데 왜 String은 값변경에 쓰이지 않을까?
: String은 객체이다, 원래는
String str = new String("안녕하세요");의 축약형이 위 코드이다.
이 코드가 실행되면 String 객체가 만들어지고, str="Hello";로 바꿨을 때
이 객체에 있는 값이 바뀌는 것이 아니라,
새로운 객체가 만들어지고 str변수가 참조하는 주소가 바뀌는 것일 뿐이다
결론, 값을 수정할때마다 객체가 만들어지고, 메모리는 낭비된다
(어차피 참조되지 않는 객체는 GC(Garbage Collector)가 처리하긴 하지만..)
문자열을 누적하는 StringBuilder
public class StringBuilderTest {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("안녕하세요");
System.out.println(sb.toString()); // 안녕하세요
sb.delete(0, sb.length());
sb.append("Hello");
System.out.println(sb.toString()); // Hello
}
}
'Backend > 자바' 카테고리의 다른 글
[Java] 생성자와 오버로딩(Overloading) (0) | 2023.03.12 |
---|---|
[Java] method와 method 호출방법 (0) | 2023.03.12 |
[Java] Scanner클래스와 버퍼의 개행문자 (0) | 2023.03.12 |
[Java] 텍스트 파일 읽기 (0) | 2023.03.12 |
[Java] System의 내장 메서드 currentTimeMillis()와 nanoTime() (0) | 2023.03.12 |