Stirng클래스
1.final클래스이므로 상속을할수없다.
2.String클래스는 불변의 원칙이다.
3.정적인 문자열처리는 String를 사용하고 동적인 경우는 StringBuffer를 사용한다.
public class Test8{
public static void main(String[] args){
String s1 = "서울"; //동일주소
String s2 = "서울"; //동일주소
String s3 = new String("서울"); //다른주소
System.out.println((s1==s2)); //실제 값이 아닌 s1과 s2의 주소를 비교한다.
System.out.println((s1==s3));
System.out.println((s1.equals(s2))); //equals메서드는 실제값을 비교
System.out.println((s1.equals(s3)));
System.out.println("s1" + s1);
System.out.println("s2" + s2);
System.out.println("s3" + s3);
//객체가 같으면 hashCode가 같지만 hashCode가 같다고 같은 객체는 아니다.
System.out.println("s1" + s1.hashCode()); //객체를 빠르게 검색시이용.
System.out.println("s1" + s2.hashCode()); //객체가 가르키는 주소가 동일하면 hashcode는 동일하다.
System.out.println("s1" + s3.hashCode()); //hashcode가 동일하다고 같은주소를 가르키는것은 아니다.
s2 += "대한민국"; //(다른곳에 메모리확보)값이 바뀌는것이아니라 새로운 메모리를 할당받아 대한민국을 할당한다. 원래의 값은 가비지콜렉터의 대상이 된다.
System.out.println((s1==s2)); //String클래스는 값을 변경할수 없다.
s2= s2+30; //String+Integer -> String로 바뀜
System.out.println(s2);
}
}
//자바에서 문자열을 비교할시에는 equals메서드를 이용해야 한다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] String 관련 메서드 (0) | 2021.12.17 |
---|---|
[JAVA] String 과 StringBuffer (0) | 2021.12.17 |
자바 String Trim() 특징 (유의사항) (0) | 2021.12.17 |
JAVA ArrayList 초기화 하는방법 (0) | 2021.12.17 |
[Java] 자바 버전 확인 하는법 (0) | 2021.12.13 |
최근댓글