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

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

by 코딩호야 2022. 6. 16.

3. String Buffer 클래스

-String 처럼 문자형 배열(char[])을 내부적으로 가지고있다.

- String 클래스는 불변 String Buffer 클래스는 내용 변경가능

 

3. 1 StringBuffer 의 생성자

-배열은 길이 변경불가, 공간이 부족하면 새로운 배열을 생성해야 한다.

-StringBuffer를 생성할 때는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해주는 것이 좋다.

-StringBuffer String과 달리 내용 변경이 가능하다.

-append( )는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환

-StringBuffer equals( )가 오버라이딩 되어있지 않다. (주소비교O, 내용비교X)

→ StringBuffer 는 String으로 변환 후에 equals( )로 비교해야 한다.

 

3. 2  StringBuffer 메서드

-append( ) : 끝에 문자열 추가함.

-delete( ) : 삭제

-insert( ) : 삽입

3. 3  StringBuffer 메서드와 생성자

3.4  StringBuilder    

StringBuffer:동기화 o , 멀티쓰레드에 안전

StringBuilder: 동기화 x, 싱글쓰레드일 때는 스트링 빌더 쓰자

 

4. Math 클래스  ,  wrapper 클래스  

4. 1 Math 클래스 

수학관련 static 메서드의 집합       //   인스턴스 변수가 없기 때문에 모든 메서드가 static (iv 없음)

rint()와 round()는 모두 반올림 메서드이지만,

rint()는 두 정수의 중간값(ex 1.5, 2.5, 3.5...)일 경우 짝수를 반환.(ex 1.5 -> 2, 2.5 -> 2 / 5.5-> 6 , 6.5 -> 6)

 

4.2 wrapper 클래스 

기본형 값을 감싸는 클래스  기본형을 객체로 다루어야 할 때 사용.

기본형 첫글자를 대문자로 바꾸면 됨   EX] boolean -> Boolean  (기본형 8개 다가능)

래퍼 클래스는 모두 equals() 가 오버라이딩 되어 있어서 주소가아닌 객체값을 비교.

 

Integer (래퍼 클래스) -> int(기본형)로 변환할 때  intValue( )메서드 사용     // 레퍼클래스 -> 기본형   Value()  사용

래퍼클래스 -> 문자열 변환할 때 toString( )메서드 활용                                // 레퍼클래스 -> 문자열    toString()  사용

 

Number 클래스

모든 숫자 래퍼 클래스의 조상.

 

4.3 오토박싱 & 언박싱

오토박싱 : 기본형 값을 래퍼 클래스 객체로 자동 변환

언박싱 : 래퍼 클래스 객체를 기본형 값으로 자동 변환