String , Wrapper 클래스
String 클래스
String 클래스 선언하기
String str2 = “abc”;
String str3 = “abc”; 상수풀에 있는 문자열을 공유하게 된다.
String 클래스는 한번 선언되거나 생성된 문자열은 변경할수없다.
String 클래스의 concat() 메소드 혹은 “+” 를 이용하여 String 을 연결하는 경우 새로운 메모리를 가리키게 된다. 안쓰이는것은 가비지컬렉터
즉, 한번 생성된 문자열은 불변이다.
package string;
public class StringTest {
public static void main(String[] args) {
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1 == str2); // false 힙메모리에 따로 저장된다.
String str3 = "abc"; // 상수풀에 저장되서 같은곳을 가리킨다.
String str4 = "abc";
System.out.println(str3 == str4); // 상수풀에서 공유한다.
}
}
package string;
public class StringClassTest2 {
public static void main(String[] args) {
String java = new String("자바");
String android = new String("android");
System.out.println(System.identityHashCode(java)); // 해시코드 값
String javaandroid = java.concat(android); // 새로운 메모리 String 를 연결한다.
System.out.println(javaandroid); // 새로운 메모리에 생성됨
System.out.println(System.identityHashCode(javaandroid)); // 해시코드값
// 연결을 하면 새로운 메모리가 생성됨 기존에 있는
}
}
'JAVA Programming' 카테고리의 다른 글
[59] 제네릭 프로그래밍 (0) | 2020.07.20 |
---|---|
[58] StringBuilder , StringBuffer 기본적인 char[] 배열을 멤버변수 클래스 , Wrapper 클래스 정의 (0) | 2020.07.20 |
[56] 끄적이기 equals(Object obj) , 부모 instanceof 자식 타입속하나 (0) | 2020.07.20 |
[56] 타입을 쓸수 없는 경우 동적로딩 reflect 프로그래밍 (0) | 2020.07.20 |
[55] 자바 버전 확인하기 (0) | 2020.07.20 |