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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기