10_java_String,wrapper

study/java · 2019. 11. 7. 08:43

@@@API@@@

(Application Programming Interface)

응용 프로그램을 만들 때 프로그래밍 언어가 제공하는 기능들을 제어할 수 있는 인터페이스를 제공하는 것

*Deprecated : 삭제예정

*Specified by : 상속받는 곳

*Parameters : 매개변수

*returns : 반환값

*Throws : 발생가능한 예외상황

 

@@@Object@@@

11가지 메소드

ex) clone(), toString(), equals(), hashcode()

Object.toString()

객체의 정보(필드)를 String 형태로 반환하는 메소드

객체 내의 모든 정보를 한 눈에 파악할 수 있도록 문자열에 담아 반환할 목적으로 정의된 메소드

--> 필요한 형태로 오버라이딩해서 사용

 

Object.equals()

객체가 가지고 있는 '값'이 동일한 값인지를 판별하는 기능

동등객체(hashCode() / 동일 객체(equals())

동등객체 : 완전히 같은 객체

동일객체 : 객체 '값'이 같다

 

equals 동일객체 확인용 오버라이딩

1)비교대상객체타입이 같거나 상속받는지확인

2)상속받는다면 다운캐스팅한 객체생성

3)비교해서 다르다면 false 반환

4)전부같다면 true 반환

 

Vo 클래스 작성시 꼬 작성할 내용

1) 필드 2) 생성자 3) get/setter() 4) toString() 5) equals()

@@@String Class@@@

문자열 값 수정 불가능 , inmutable(불변)

-> 수정 시 수정된 문자열이 새로 할당 되어 새 주소를 넘김

 

StringPool에 생성된 객체는 동등한 리터럴을 생성하면 기존것을 재활용한다

String s2 = new String("Hello"); 로 생성한다면 힙 영역에 스트링풀을 가르키는 객체가 하나 더

생성되서 거쳐가게 된다.

 

@@@StringBuffer Class@@@

문자열 값 수정 가능, mutable(가변)

수정,삭제 등이 기존 문자열에 수정되어 적용

기본 16문자 크기로 지정된 버퍼를 이용하여 크기 증가 가능

쓰레드 safe기능 제공(성능 저하 요인)

%-> 다른 멀티 쓰레드를 사용하지 않겠다 (턴제)

*capacity = 용량

@@@StringBuilder Class@@@

StringBuffer와 동일하나 쓰레드 safe기능을 제공하지 않음

%-> 실시간

 

@@@Wrapper Class@@@

기본자료형(Primitive Date Type)을 객체화 해주는 클래스

=boxing

기본형 래퍼클래스
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double

 

@String형 -> 기본 자료형 변환

기본자료형 변수명 = 래퍼클래스.parse래퍼클래스("문자열");

 

@기본자료형 -> String 변환

String자료형 변수명 = 입력받은래퍼클래스.valueOf(기본자료형).toString();

String자료형 변수명 = 기본자료형 +"";

@Boxing

기본자료형을 객체라는 박스로 포장

ex) Integer it1 = new Integer(123);

@Unboxing

래퍼클래스를 기본자료형으로 변환

ex) int i = it1.intValue();

    int i2 = (int)it1; // Integer 객체 내부에 int값 반환

@AutoBoxing/Unboxing

Integer it2 = 100; // Auto Boxing

int i3 = it2; // Auto Unboxing

 

@변수명.split("나누는기준문자");

@@@Date Class@@@

1970년 1월 1일 오전 9시 0분 0초 기준으로 시간을 ms 단위로 계산

@SimpleDateFormat(java.text.SimpleDateFormat)

ex) SimpleDateFormat fmt = new SimpleDateFormat("G yyyy년 MM월dd일 E요일 hh시 mm분 ss초");

서기 2019년 11월 6일 수요일 3시 36분 50초

String str = fmt.format(today);

System.out.println(str);

@@@Math Class@@@

전체가 Static으로 이루어져 있고 싱글톤패턴이 적용됨