반응형
Wrapper 클래스
: 8가지에 해당하는 기본 타입의 데이터를 객체화 할 수 있도록 하는 클래스
Primitive Data Type | Wrapper Class |
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
Boxing
: 기본 타입을 레퍼클래스의 객체로 객체화 하는 것
UnBoxing
: 래퍼클래스 타입의 객체를 기본 타입으로 변경하는 것
int intValue = 20;
박싱 - 생성자 이용
Integer boxingNumber1 = new Integer(intValue);
=>int값 기본자료형을 Integer라는 생성자 쪽에다가 인자로 전달하면 Integer타입의 객체가 됨
(java 9버전부터는 쓰지 않음)
박싱 - static 메소드 이용
Integer boxingNumber2 = Integer.valueOf(intValue);
=> Intger클래스가 가지고 있는 valueOf라는 Static 메소드를 이용해서 20이라는
기본 자료형을 전달하면 Integer타입의 객체가 됨.
언박싱 - IntValue() 이용
int unBoxingNumber1 = boxingNumber1.intValue();
=> 박싱된 객체를 intVaue()를 사용해 int타입으로 바꿈
Auto Boxing과 Auto UnBoxing
: JDK 1.5부터는 박싱과 언박싱을 자바 컴파일러가 이를 자동으로 처리해 줌
이런 자동화 된 박싱과 언박싱을 오토 박싱, 오토 언박싱이라고 함.
오토 박싱
Integer boxingNumber3 = intValue;
오토 언박싱
int unBoxingNumber2 = boxingNumber3;
반응형
Wrapper 클래스 값 비교
: 기본 타입과 래퍼클래스 타입은 == 연산으로 비교 가능
생성자를 이용해 생성한 객체의 경우 주소값으로 비교하기 때문에 == 로 비교하지 못함(equals사용)
오토 방식을 이용해서 생성한 값은 == 로 비교 가능
int inum = 20;
Integer integerNum1 = new Integer(20);
Integer integerNum3 = 20;
Integer integerNum4 = 20;
기본 타입과 래퍼클래스 타입 비교
System.out.println("int와 Integer 비교 : " + (inum == integerNum3));
오토박싱 값 비교
System.out.println("integer와 integer 비교 : " + (integerNum3 == integerNum4));
생성자 이용한 경우 equals로 값 비교
System.out.println("equals() : " + (integerNum1.equals(integerNum3)));
parsing
: 문자열(String) 값을 기본 자료형 값으로 변경하는 것
Character는 parsing 기능을 제공하지 않음
byte b = Byte.parseByte("1");
short s = Short.parseShort("2");
int i = Integer.parseInt("4");
long l = Long.parseLong("8");
float f = Float.parseFloat("4.0");
double d = Double.parseDouble("8.0");
boolean bl = Boolean.parseBoolean("true");
Character는 parsing 기능을 제공하지 않기 때문에 아래와 같이 사용
char c = "abc".charAt(0);
valueOf()
: 기본자료형 값을 Wrapper 클래스 타입으로 변환시키는 메소드
toString()
: 필드 값을 문자열로 반환하는 메소드
valueOf()와 toString() 사용하여 문자열로 변환
String b = Byte.valueOf((byte)1).toString();
=> 1이라는 값을 가진 기본자료형 byte를
레퍼클래스 Byte타입으로 변화시키고, toString메소드로 String으로 만들었다.
String 클래스의 valueOf 메소드로 변환
String str = String.valueOf(10);
문자열 합치기를 이용해 String으로 변환
String str2 = 123 + "";
반응형
'프로그래밍 > java' 카테고리의 다른 글
[자바/JAVA] 예외처리(try-catch , thows, finally블럭, RuntimeException) (0) | 2022.09.03 |
---|---|
[자바JAVA] 제네릭(generic)_와일드카드 (0) | 2022.09.03 |
[자바 / Java] StringBuilder의 자주 사용되는 메소드 (0) | 2022.09.03 |
[자바 / Java] 이스케이프 문자 사용 (0) | 2022.09.03 |
[자바/Java] String 클래스의 hashCode()와 equals() (0) | 2022.08.29 |