백엔드/Java의 정석

TIL 정리_11

ran4 2022. 2. 26. 23:31

 

 

 

Vector 클래스 가변배열 가능(동적으로 크기가 관리되는 객체배열)

Object[] - 모든 종류의 객체 저장 가능

 

Vector 클래스의 주요 메서드

메서드/생성자 설명
Vector() 10개의 객체를 저장할 수 있는 Vector인스턴스를 생성한다
10개 이상의 인스턴스가 저장되면, 자동적으로 크기가 증가된다.
boolean add(Object o) Vector에 객체를 추가한다.
추가에 성공하면 결과값으로 true 실패하면 false를 반환한다.
boolean remove (Object o) Vector에 저장되어 있는 객체를 제거한다. 제거에 성공하면 true 실패하면 flase를 반환한다.
boolean isEmpty() Vector가 비어있는지 검사한다. 비어있으면 true, 비어있지 않으면 false를 반환한다.
Object get (int index) 지정된 위치(index)의 객체를 반환한다. 반환타입이 Object타입이므로 적절한 타입으로의 형변환이 필요하다.
int size() Vector에 저장된 객체의 개수를 반환한다

 

연결된 예외를 사용하는 이유 

-여러 예외를 하나로 묶어서 다루기 위해

checked 예외를 unchecked 예외로 변경하려 할 때 

필수 예외는 try-catch로 감싸야 하기 때문에 코드의 간편함을 위해 사용한다

 

Object 클래스

모든 클래스의 최고 조상, 오직 11개의 메서드만을 가지고 있다

Object 클래스의 메서드 설명
protected Object clone() 객체 자신의 복사본을 반환
public boolean equals
(Object obj)
객체 자신과 객체 obj가 같은 객체인지 알려준다(같으면 true)
protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출된다. 이때 수행되어야 하는 코드가 있을 때 오버라이딩한다(거의 사용안함)
public Class getClass() 객체 자신의 클래스 정보를 담고있는 class 인스턴스를 반환
public int hashCode() 객체 자신의 해시코드 반환
public String toString() 객체 자신의 정보를 문자열로 반환
public void notify() 객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨운다
public void notifyAll() 객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨운다
public void wait()
public void wait
(long timeout)

public void wait
(long timeout, int nanos)
다른 쓰레드가 notify()nofiyAll()을 호출할 때까지 현재 쓰레드를 무한히 또는 지정된 시간(timeout, nonos)동안 기다리게 한다. (timeout은 천분의 1nanos10(9)분의 1

notify(), notifyAll(), wait()은 쓰레드와 관련된 메서드이다

 

equals(Object obj)

객체의 참조변수를 받아서 비교하여 그 결과를 boolean 값으로 알려주는 역할을 한다(true/false)

Object 클래스의 equals()는 객체의 주소를 비교한다 

 

equals()의 오버라이딩

equals()는 주소 비교의 기능밖에 없기에 인스턴스 변수의 값을 비교하도록 오버라이딩 해야한다

 

hashCode()

해싱 기법에 사용되는 해시함수를 구현한 것

*해싱 : 다량의 데이터를 저장하고 검색하는데 유용한 데이터 관리기법 중 하나

객체의 해시코드(hash code)를 반환하는 메서드 

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

 

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

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

 

toString()

인스턴스에 대한 정보를 문자열(String)로 제공할 목적으로 정의한 것

객체를 문자열(string)으로 변환하기 위한 메서드//iv를 문자열로 바꿈

 

**이클립스 source -> hashCode() equals() 누르면 자동으로 오버라이딩 해준다

 

clone()

자신을 복제하여 새로운 인스턴스를 생성한다

Object 클래스에 정의된 clone()은 인스턴스 변수의 값만 복사하기 때문에 

참조타입의 인스턴스 변수가 있는 클래스는 완전한 복제가 이루어지지 않는다.

class Point implements Clonable //Clonable 인터페이스를 구현해야 clone()을 호출할 수 있다

 

'백엔드 > Java의 정석' 카테고리의 다른 글

TIL 정리_13  (0) 2022.02.28
TIL 정리_12  (0) 2022.02.27
TIL 정리_10  (0) 2022.02.25
TIL 정리_09  (0) 2022.02.24
TIL 정리_08  (0) 2022.02.23