Java - String 참조형 변수

지환·2023년 9월 21일
0

JAVA

목록 보기
9/39

출처 | https://splendidlolli.tistory.com/69

String 클래스 (문자열)

ㅇ문자열을 표현하는 자바에서 가장 많이 사용하는 클래스

ㅇString은 new연산자를 이용하지 않고도 인스턴스를 만들어 낼 수 있다!

ㄴ나머지 모든 클래스들은 new연산자를 이용해야지만 실제 인스턴스를 만들어낼 수 있다.

ㄴString은 기본 데이터타입 적어주는 것처럼 사용해도 기능이 된다! **특별한 클래스

ㄴ당연히 일반 클래스들처럼 new를 이용해서도 생성가능 String str = new String("hello");

String str1 = "hello"

String str2 = "hello"

String str3 = new String("hello");

String str4 = new String("hello");

<<new를 사용하지 않는 경우의 String>>

이 hello라는 문자열은 메모리 중 상수들이 저장되는 영역에 저장된다.

첫번째 hello와 두번째 hello가 똑같으니 두개 만들어질 필요는 없다.

hello라는 인스턴스가 상수영역에 생성이 된다. 그리고 str1은 그 인스턴스를 가리키고,

str2도 hello를 가리키라고 하네? 그럼 일단 상수영역에 hello가 있는지 먼저 살펴본다. 있으면 새로 만들지 않고 hello를 가리킬 수 있다.

즉, str1과 str2는 같은 인스턴스를 참조하고(가리키고) 있다.

ㄴ메모리를 아끼려면 new를 사용하지 않는 것이 좋다.

<<new를 사용하는 경우의 String>>

new연산자로 인스턴스를 만들면, 무조건 상수영역에 있는걸 참조하지 않는다. 인스턴스는 무조건 새롭게 만들어진다.

따라서 str3과 str4는 서로 다른 인스턴스를 참조한다. (같은 래퍼런스가 아니다!)

profile
아는만큼보인다.

0개의 댓글