프로그래밍 기초

Java에서 String 생성 시 ""와 new 의 차이

hs-archive 2021. 9. 9. 00:28

https://unsplash.com/photos/tm_fzvXd_Wk

 

Java에서 String 생성 시 "" 리터럴을 사용하여 만드는 방법과 new 키워드를 사용해 만드는 방법의 차이는 무엇일까?

 

 

 

 

 


얻어갈 지식

  • Java에서 String형 변수 생성 시 ""리터럴과 new 키워드의 차이

 

 

 

 

 

"리터럴과 new 키워드의 차이"

 

Java에는 heap이라는 저장 공간이 있는데 이 heap안에 string pool이 존재한다.

 

"" 리터럴로 String을 만들면string pool 안에 들어가는데 들어가기 전 이미 중복된 문자열이 있는지 확인하고 있다면 해당 주소 값을 공유하게 된다.

 

반면 new 키워드를 사용해 개체를 생성하면 다른 개체와 똑같이 string pool을 제외한 heap안에 생성되며 같은 글자를 갖는 String 개체가 있더라도 새로운 독립된 개체를 생성하게 된다.

따라서 new 키워드 사용 시 갖고 있는 값이 모두 같더라도 주소는 모두 다를 것이다.

 

<참고> https://cdn.journaldev.com/wp-content/uploads/2012/11/String-Pool-Java1.png 

 

 

 

 

 


https://www.journaldev.com/797/what-is-java-string-pool

 

What is Java String Pool? - JournalDev

String Pool in Java. Java String Pool. String constant pool in java with example program. string pool concept and memory management in heap and pool.

www.journaldev.com

 

'프로그래밍 기초' 카테고리의 다른 글

동적 배열  (0) 2022.05.29
32bit vs 64bit  (0) 2021.10.06
비트 패턴  (0) 2021.09.09
컴퓨터의 음수 표현과 보수법  (0) 2021.09.08
signed, unsigned  (0) 2021.09.08