반응형
HashCode
package chap02;
public class HashCodeEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1=new String("abc");
String str2=new String("abc");
System.out.println(str1.equals(str2));
System.out.println(str1.hashCode());
System.out.println(str2.hashCode());
//문자열 내용이 같은 str1,str2에 대해서 hashcode를 호출하면?? 같은 결과값.
//System.identityHashcode: 객체의 주소값으로 해시코드를 생성 --> 모든 객체에 대해서 다른 해시코드값을 반환.
System.out.println(System.identityHashCode(str1));
System.out.println(System.identityHashCode(str2));
//해싱이란? 데이터 관리 기법중의 하나. 다량의 데이터를 저장하고 검색하는데 유용함.
//해시함수는 찾고자하는 값을 입력하면, 그 값이 저장된 위치를 알려주는 해시코드를 반환.
//32bit=48byte 주소=4byte JVM
//63bit = 8 byte 주소=4byte JVM
//클래스의 인스턴스변수 값으로 객체의 같고 다름을 판단해야 하는 경우가 있다면?
//equals 메소드 + hashcode 메소드도 적절히 활용해서 같고 다름을 판단해야 됨.
//해싱기법(HashMap, hashSet) : 반드시 hashcode메소드를 오버라이딩 해야됨.
}
}
*결과
StringBuffer
package chap06;
public class StringBufferEx {
public static void main(String[] args) {
//String 클래스는 인스턴스를 생성할 때,지정된 문자열을 변경할 수 없다.
//StringBuffer클래스는 변경 하다.
//StringBuffer는 내부적으로 문자열을 편집하기 위한 버퍼를 가지고 있으며,크기를 지정할 수 있다.
//StringBuffer클래스는 equals 메소드를 오버라이딩
StringBuffer sb=new StringBuffer("abc");
StringBuffer sb2=new StringBuffer("abc");
System.out.println("sb == sb2 ?"+(sb==sb2));
System.out.println("sb.equals(sb2)?"+sb.equals(sb2));
//StringBuffer 의 내용을 String으로 변환한다.
String s=sb.toString(); //String s=new String(sb)
String s2=sb2.toString();
System.out.println("s.equals(s2)?"+s.equals(s2));
}
}
*결과
반응형
'(JAVA)자바 > (JAVA)자바 문법' 카테고리의 다른 글
(JAVA) 자바 향상된 for문/자바 for 문/자바 향상된 for문 예제 (0) | 2021.04.05 |
---|---|
자바 큐 활용 / 자바 Queue 활용 / 자바 큐 사용법 / 큐 사용 예제 (0) | 2021.04.04 |
(JAVA) 자바 예외/자바 에러/자바 오류 총 정리 (0) | 2021.02.04 |
(JAVA)자바 equals() 의 오버라이딩 쓰는 이유/참조변수에 저장된 값 비교 (0) | 2021.01.29 |
(JAVA)자바 문자열 비교, equals(), equalsIgnoreCase(),compareTo(), contains() (0) | 2021.01.22 |
댓글