celina의 이것저것

[String] String 과 StringBuilder의 차이점 본문

CS/JAVA

[String] String 과 StringBuilder의 차이점

celinayk 2025. 4. 14. 10:53
반응형

 

자바에서 String은 "클래스"이다. 변수는 int, double 등과 같이 소문자로 시작하지만 String은 대문자로 시작한다. 

이유는 클래스이기 때문이다. 그래서 참조형이다. 

 

 

클래스 이기 때문에 다양한 메서드들을 사용할 수 있는 것이다. 

예를 들면 length(), trim()와 같은 것들

 

 

String 클래스를 통해 문자열을 생성하는 방법

 

1. 쌍따옴표 사용 

String str1 = "hello";

 

2. 객체 생성

String str2 = new String("hello");

 

String은 클래스라서 객체를 생성할 수 있고 참조형이다. 

근데 생각해 보면 str2 변수애는 참조형이 들어가야햔다. 왜냐하면 클래스니까

 

사실 1번의 코드는 이상하게 생각될 수 있다.

하지만 자바에서 문자열은 자주 사용되서 자바 컴라일러가 알아서 new String("heelo")으로 변경해준다.

 

 

 


아 참고로 String은 불변클래스이다. 클래스 내부를 보면

final~~~이렇게 되어있다

 

암튼 그래서 불변이다 보니 단점도 존재한다.

예를 들어 문자를 더하는 경우, String 내부 값을 변경 못하니 매번 결과값으로 새로운 String 객체를 생성해야한다. 그러다보면 자원의 낭비가 심해진다.

 

 

StringBuilder

 

그래서 가변 String인 StringBuilder가 등장한다.

StringBuilder 는 보통 문자열을 변경하는 동안만 사용하다가 문자열 변경이 끝나면 안전한(불변) String 으로 변환하는 것이 좋다

 

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

[다형성] 다형성->추상 클래스->인터페이스  (0) 2025.04.14
[상속]  (0) 2025.04.03
[다형성] 객체지향의 꽃  (0) 2025.04.02
Comments