본문 바로가기
Java

9장 Java.lang package & util classes

by leko 2023. 7. 4.

public boolean equals(Object obj)

서로다른 두 객체는 항상 주소가 다르다. 

인스턴스 변수(iv)의 값을 비교하도록 equals()를 오버라이딩해야함

 

public int hashCode()

1) 객체의 해시코드를 반환하는 메서드

2) Object 클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환해야함

 

3) equals()를 오버라이딩하면 hasCode()도 오버라이딩해야한다

 

4) equals()의 결과가 true인 두 객체의 해시코드는 같아야 하기때문

 

System.identity.HashCode(Object obj) 는 객체마다 다른 해시코드반환, Object클래스의 hashCode()와 동

 

public String toString() 

객체(=iv 집합)를 문자열(String)으로 변환하는 메서드

public String toString(){

return getClass().getName()+"@"+ Integer.toHexString(hashCode());

 

String Class : 문자열을 다루기 위한 클래스 

데이터 (char[] 문자 배)+ 메서드(문자열 관련)

 

내용을 변경할 수 없는 불변 클래스

String a = "a";

Stirng b = "b";

a = a+b;

덧셈연산자는 성능이 떨어짐

문자열 결합이나 변경이 잦으면 내용이 변경가능한 StringBuffer를 사용

 

String str1 = "abc"; //여러 참조 변수가 공유할 수 있다

String str2= "abc";

 

String str3 = new String ("abc");//항상 새로운 문자열이 만들어짐

String str4 = new String ("abc");

 

==  이건 주소비교

따라서 문자열을  비교하려면 

str3.equals(str4)

str1.equals(str2)로 해야 한다

 

문자열  리터럴 (=상수) : 프로그램 실행시 자동으로 생성된다

String str1 = "abc"; //여러 참조 변수가 공유할 수 있다 , 주소가 서로 같다

String str2= "abc";

 

빈 문자열 

내용이 없는 문자열, 크기가 0인 char형 배열을 저장하는 문자열

어느타입이나 크기가 0인 배열 생성가능

char[] chArr = new char[0];

int [] iArr = {};

String str =""; 

 

문자와 문자열의 초기화

String s = null;

Stirng s =""; // 이게 더좋음 , 빈 문자열로 초기화

 

char c = '\u0000';

char c = ' ';   //공백으로 초기화

 

StringBuffer 클래스

String 처럼 문자형배열을 내부적으로 가지고 있다 

 

'Java' 카테고리의 다른 글

입출력 스트림과 파일 입출력  (0) 2023.07.13
12장 Collection FrameWork Generics  (0) 2023.07.10
object oriented programming 개념 정리  (0) 2023.07.08
11장 Collection FrameWork  (0) 2023.07.06
5장 Array  (0) 2023.06.28