String 클래스

이정민·2021년 10월 31일
0

String 클래스

String 클래스의 특징

String 인스턴스의 내용은 바꿀 수 없다.(immutable)


String a = "a";
String b = "b";

참조변수 a, b에는 문자열이 저장되어있는것이 아니라 문자열이 저장되어있는 주소가 저장된다.


String a = a + b;

참조변수 a의 값(주소값)이 새로 생성된 인스턴스의 주소로 바뀌고 그 주소에 a+b가 저장된다.

그렇기 때문에 내용을 변경할 수 있는 String Buffer를 사용하는 것이 좋다.




String str = "abc";String str = new String("abc");의 비교

String str1 = "abc";		--- 인스턴스를 생성할 떄 리터럴 사용
String str2 = "abc";

String str3 = new String("abc");	--- new 연산자 사용
String str4 = new String("abc");

System.out.println(str1==str2);
System.out.println(str3==str4);

System.out.println(str1.equals(str2));
System.out.println(str3.equals(str4));

리터럴을 이용하면 내용이 같을 경우 하나의 인스턴스를 공유하게 된다.
new연산자를 이용하면 내용과 상관없이 무조건 새로운 String 인스턴스를 생성한다.

비교연산자로 연산했을 경우 각각 true, false가 나오고
equals로 문자열을 비교하면 모두 같은 내용의 String 인스턴스를 참조하고 있기 때문에 결과가 true가 나온다.

profile
안녕하세요.

0개의 댓글