<String>

 

- new 생략 가능하다.

 

- new를 이용할 경우 heap 공간이 생성되지만 new를 생략하고 String을 사용할 경우 StringConstant(상수)Pool이 생성된다.

 

- 문자열이 계속 축적되는 경우에는 new로 heap을 생성해주는게 좋다.

 

 

<StringConstantPool>

 

- 다른 언어에는 없고 Java에만 있는 기능이다.

 

- String s ="나무"; / String s2 = "나무"; / s= s+ "안녕" 의 경우 

1,2번 값이 같기 때문에 같은 주소값으로 해당 공간에 들어간다.

 3번 값은 나무 + 안녕으로 생성된 공간안에 추가로 해당 값이 생성된다. 

이후 사용하지 않거나 동일한 문자열이 추가될 경우 값이 지속적으로 생성, 소멸된다.

 

- 동일한 문자열을 하나의 공간에 넣을 수 있는 것이 장점이다.

 

 

 

<equals>

 

 

- ==로 비교했을 때 값이 동일하면 탐색종료

 

- == 으로 비교했을 때 동일하지 않는 경우 해당 주소에 접근해서 실제 값을 비교해서 검사한다.

 

- 문자열을 비교할때 사용한다.

 

- String의 경우 equals로 검사해야 안전하다. 

 

- 둘 중 하나가 참인 경우 true

 

 

openclose