본문 바로가기
개발 공부/Java

자바의 정석 9강 (1) - java.lang 패키지

by 코딩호야 2022. 6. 16.

1. Object 클래스

1. 1   equals 메서드

객체의 참조변수를 받아서 비교하여 그결과를  boolean  값으로 알려줌.

 public boolean equals (Object obj)  {

               return (this == obj)    }

- equals() : 객체 자신하고 주어진 객체(obj) 비교 

- equals() 오버라이딩 : 인스턴스 값을 비교하도록 오버라이딩 해줘야함 cv는 공통 , iv 는 객체마다 다름 그래서 객체비교는 iv 를통해 같은지 다른지 비교해야함. 

 

1. 2   hashcode 메서드

객체의 주소를 정수( int ) 로 반환하는 메서드 (객체마다 다름)

equals()를 오버라이딩 하면 , hashcode() 도 오버라이딩 해줘야한다 .

equals() 값이 true 면, 같은 객체이므로 해시코드 값도 같아야 하기 때문이다.

.

1. 3    toString  메서드

객체를 문자열(String) 로 바꾸는 메서드.

 

1. 4  getClass 메서드

자신이 속한 클래스의 Class 객체를 반환하는 메서드

 

2. String 클래스 

내용을 변경할 수 없는 불변(immutable) 의 클래스

문자열 결합시 변수의 값이 바뀌는 것이 아니라 , 새로운 문자열이 생성되고 ,그 주소로 주소값이 바뀌는것.

문자열 결합니 잦을경우 , 성능저하되므로 StringBuffer  클리스 사용을권장한다.

 

2. 1문자열 비교 

문자열을 비교할 때는 equals() 사용

== (등가 비교연산자)는 두 문자열의 주소비교 이므로 equals()를 사용해야 문자열 값을 비교.

new 연산자를 사용하여 문자열을 생성할 경우 , 그 내용이 같더라도 새로운 문자열로 생성됨(주소가다름)

EX]    String str1 = new String("abc")     // 새로운 주소의 문자열 생성됨.

 

2. 2 문자열 리터럴(상수)

문자열 리터럴은 프로그램 실행시 자동 생성되어 constant poll에 저장됨.

같은 내용의 문자열 리터럴은 하나만 만들어짐.

 

2. 3 빈문자열

내용이 없는 문자열. 모든타입의 배열은 길이(크기)가 0으로 생성가능.

문자열의 기본값은 null, 문자의 기본값은 \u0000 이지만 , 초기화 할때는 기본값보다는 빈문자열로 초기화하는것이 좋다.

EX]    String str = " " ;        /     char  ch  = " " ;

 

String 클래스의 생성자 와 메서드

2.4  join () 과 String Joiner

- join()은 여러 문자열 사이에 구분자를 넣어서 결합한다.

(많은 문자열을 결합할 때 사용하면 좋다)

 

2.5  문자열과 기본형 간의 변환

숫자 →  문자열 

int i = 100; 

String str1 = i + " " ;        숫자 + " "  ;    // 숫자에 빈문자열 더하기   > 편리

String str2 = String. valueOf(i) ;               //  valueOf 메서드 사용  > 빠름

문자열 → 숫자 

int i=Integer.parseInt("100");    // 예전방법 

int i=Integer.valueOf("100");    //  모든게 valueOf 메서드로 가능 (이걸로다쓰면됨)