(String)/toString()/String.valueOf()

이진아·2020년 5월 26일
0

1.String casting

: 형변환
: 대상 Object가 실제로 문자열이여야 가능

ClassCastException

Object noString = new Integer(12);
String str = (String)noString;//

2.toString()

1) public String toString()

: 모든 웹퍼 클래스는 toString()메소드를 가짐
: 웹퍼 객체를 String 타입으로 형변환 해줌

2) wrapper class

: 기본 타입에 해당하는 데이터를 객체로 포장해주는 클래스

Integer num = new Integer(10);//박싱
int n = num.intValue();//언바싱
Character ch = 'x';//new Character('x');//오토 박싱
char c = ch;//ch.charValue()://오토 언박싱

※ 산술연산을 위해 정의된 클래스가 아님
: 인스턴스에 저장된 값을 변경할 수 없음

Ex1 )

Integer num1 = new Integer(5);
Integer num2 = new Integer(3);
int int1 = num1.inValue();
int int2 = num2.inValue();
Integer result1 = num1 + num2;//8
Integer result2 = int1 - int2;//2
int result3 = num1*int2;//15
//위의 연산은 내부적으로 래퍼 클래스를 오토 언박싱하여 
기본 타입끼리의 연산을 수행하고 있는 것

Ex2 )
String의 +=는 어떤 연산이 이루어진게 아니라
초기화가 계속 일어나는 것!
=> 메모리 낭비
=> StringBuilder의 append() 함수 사용

3) 주의점

: 메소드이기 때문에 기본형 사용 불가!
: null 값 주의!

NullPointException

String nullString = null;
String str = nullString.toString();//

3.String.valueOf()

: 어떤한 값이라도 String 문자열로 바꿔줌

String str = String.valueOf(new Integer(12));//"12"
String str2 = String.valueOf(null);//"null"

0개의 댓글