String 생성 방법의 차이
1. String s1 = new String("Java");
2. String s2 = "Java"; <-리터럴방식
1번 방식으로 생성하게 되면 힙메모리에 올라가게된다.
2번 방식으로 생성하게되면 자바1.7이후 힙메모리안 StringPool이라는 특정메모리안에 올라가게된다.
2번 방식은 값이 같을 경우 같은 주소를 보게된다.
즉, == 로 비교하게되면 주소값을 비교하게되는데 2번방식으로 생성할때만 비교할 수 있다.
.equals()방식은 문자열을 비교하는 것이기 때문에 모두 가능하다.
즉, new()로 생성하면 힙메모리에 생성되고 ""로 생성하게되면 힙메모리안 StringPool에 생성되어 재사용가능하다.
'개발 소발 > 개발 java(기초)' 카테고리의 다른 글
JAVA static의 개념, 추상클래스(abstract)와 인터페이스(Interface)의 차이 (0) | 2019.02.11 |
---|---|
JAVA 오버라이딩,오버로딩overriding,overloading (0) | 2019.02.08 |
JAVA String,StringBuffer,StringBuilder의 차이 (0) | 2019.01.16 |
JAVA 메모리영역 Stack,Heap이란? (0) | 2019.01.16 |
JAVA autoboxing,unboxing이란? (0) | 2019.01.16 |