Languages/JAVA

java.lang 클래스

프로그래멍 2020. 4. 2. 01:11

Object클래스

 : 모든 클래스의 최고 조상 클래스

 

 equals()

  : 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려 주는 역할

 

 equals 메서드는 주소값으로 비교를 하기 때문에 두 value값이 10으로 같을지라도 비교한 결과는 false다.

 

 equals() 오버라이딩

value 의 값을 비교하고 싶다면 equals 메서드를 오버라이딩하여 사용하면 된다.

 

 

 hashCode()

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

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

    검색 값 입력 >> 그 값이 저장된 위치 반환

 String 클래스는 hashCode 메서드가 오버라이딩 되어 있기 때문에

 문자열의 내용이 같은 str1과 str2 에 대해 동일한 해시코드값을 얻는다.

 반면에 indentityHashCode 는 객체의 주소값으로 해시코드를

 생성하기 때문에 모든 객체에 대해 상상 다른 해시코드값을 반환.

 

 

toString()

 : 인스턴스에 대한 정보를 문자열로 제공할 목적으로 정의된 것.

toString 오버라이딩

 

String 클래스

 : 문자열을 저장하기 위해서 문자형 배열 참조변수(char[]) value 를 인스턴스 변수로 정의해놓고 잇다.

   인스턴스 생성 시 생성자의 매개변수로 입력받는 문자열은 이 인스턴스변수에 문자형 배열로 저장되는 것이다.

   스트링 클래스는 final이 붙어 있으므로 다른 클래스의 조상이 될 수 없다.

 

매 연산 시 마다 새로운 문자열을 가진 인스턴스 생성.

 문자열 간의 결합이나 추출 등 문자열을 다루는 작업이 많이 필요한 경우에는 StringBuffer 클래스를 사용할 것.

 (메모리 절약)

 

문자열의 비교 

리터럴 지정과 생성자를 사용하는 것의 차이점

리터럴 : 주소값과 equals 값이 같다.

생성자 : 주소값 다르다 equals 값은 같다.

 

스트링 리터럴들은 컴파일 시에 클래스파일에 저장된다.

"abc"라는 문자열을 담고 있는 String인스턴스가 하나 생성된 후, 참조변수 s1, s2 는 모두 이 String 인스턴스를

 참조하게 된다.

 

String 생성자와 메서드

 

  intern()

split(구분자) 

 : 구분자로 문자열을 잘라서 배열에 넣어준다.

join(구분자, 배열참조변수)

 : 배열을 구분자로 구별해서 결합시켜준다.

new StringJoiner(",","[","]")

 : [aaa,bbb,ccc] 로 나타난다.

 

 

StringBuffer

 : String 클래스는 인스턴스를 생성할 때 지정된 문자열을 변경할 수 없지만

    StringBuffer 클래스는 변경이 가능하다.

   편집할 문자열의 길이를 고려하여 버퍼의 길이를 충분히 잡아주는 것이 좋다.

   버퍼의 길이를 넘어서게 되면 버퍼의 길이를 늘려주는 작업이 추가로 수행되기 때문에 효율이 떨어진다.

 

 비교

  : 스프링버퍼 클래스는 equals메서드를 오버라이딩하지 않아서 등가비교연산자(==)로 비교한 것과

    같은 결과를 얻는다. ( 참조변수의 주소값 비교 )

 

 해결을 하기 위해선 toString을 이용해서 String 인스턴스를 얻은 다음 비교하면 된다.

 

StringBuilder

 : StringBuffer에서 쓰레드의 동기화만 뺀 클래스

 

 

Math

 : 기본적인 수학계산에 유용한 메서드로 구성된 클래스.

 

래퍼(wrapper)클래스

 : 기본형(primitive t ype) 변수를 변수로 다뤄야 할 때 사용되는 클래스.

   이 클래스를 사용하면 기본형을 객체로 다룰 수 있다.

 

Number 클래스

 : 추상 클래스. 내부적으로 숫자를 멤버변수로 갖는 래퍼 클래스들의 조상.

   

오토박싱 & 언박싱

오토박싱

 : 기본형 값을 래퍼클래스의 객체로 자동 변환해주는 것.

언박싱

 : 래퍼클래스를 기본형 값으로 자동 변환해주는 것.