[Java] String

지인·2023년 6월 21일
0

Java

목록 보기
5/7

🐰 String

클래스 타입으로, 참조 타입이기 때문에 기본 타입과는 달리 힙 영영에 생성된다.

String name = "홍길동";
  • String 객체를 생성할 때 문자열 값인 "홍길동"은 String 객체로 생성되고, name 변수는 생성된 String 객체를 참조한다.
  • name 변수 자체는 스택 영역에 저장되고, 문자열 "홍길동"은 힙 영역에 String 객체로 생성된다.
  • name 변수에 "홍길동"이 담겨있는 String 객체의 주소 값이 저장된다.

문자열 리터럴

  • 문자열 리터럴이 동일하다면 String 객체를 공유한다.
String name1 = "홍길동";
String name2 = "홍길동";
  • name1과 name2는 같은 힙 영역의 String 객체를 가리키고 있다.
  • 같은 곳을 가리키고 있기 때문에 저장된 주소 값도 동일하다.

new 연산자

  • 힙 영역에 무조건 새로운 객체를 생성하게 된다.
String name3 = new String("홍길동");
String name4 = new String("홍길동");
  • 새로운 객체를 생성하게 되므로 다른 곳을 가리키고 있기 때문에 같은 "홍길동" 값임에도 불구하고 주소 값이 다르다.

참고

profile
열쩡

0개의 댓글