래퍼 클래스
- 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스.
public final class Integer extends Number implements Comparable {
...
private int value;
...
}
기본형 | 래퍼블래스 | 활용예 |
---|
boolean | Boolean | Boolean b = new Boolean(true); Boolean b2 = new Boolean("true"); |
char | Character | Character c = new Character('a'); |
byte | Byte | Byte b = new Byte(10); Byte b2 = new Byte("10"); |
short | Short | Short s = new Short(10); Short s2 = new Short("10"); |
int | Integer | Integer i = new Integer(100); Integer i2 = new Integer("100"); |
float | Float | Float f = new Float(1.0); Float f2 = new Float(1.0f); Float f3 = new Float("1.0f"); |
double | Double | Double d = new Double(1.0); Double d2 = new Double("1.0"); |
class Ex {
public static void main(String[] args) {
Integer i = new Integer(100);
Integer i2 = new Integer(100);
System.out.println(i==i2);
System.out.println(i.equals(i2));
}
}
result
false
true
Number 클래스
- 모든 숫자 래퍼 클래스의 조상.(byte, short, integer, long, 등등...)
public abstract class Number implements java.io.Serializable {
public abstract int inValue();
public abstract long longValue();
public abstract float floatValue();
public abstract double doubleValue();
public byte byteValue() {
return (byte)intValue();
}
public short shortValue() {
return (short)intValue();
}
}
이런것들이 있구나 하고 생각하면 된다.
int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100");
Integer i3 = Integer.valueOf("100");
문자열->기본형 | 문자열->래퍼 클래스 |
---|
byte b = Byte.parseByte("100"); short s = Short.parseShort("100"); int i = Integer.parseInt("100"); long l = Long.parseLong("100"); float f = Float.parseFloat("3.14"); double d = Double.parseDouble("3.14"); | Byte b = Byte.valueOf("100"); Short s Short.valueOf("100"); Integer i = Integer.valueOf("100"); Long l = Long.valueOf("100"); Float f = Float.valueOf("3.14"); Double d = Double.valueOf("3.14"); |
int i4 = Integer.parseInt("100", 2)
int i5 = Integer.parseInt("100", 8)
int i6 = Integer.parseInt("100", 16)
int i7 = Integer.parseInt("FF", 16)
오토박싱 & 언박싱
- JDK1.5이전에는 기본형과 참조형간의 연산이 불가능
int i = 5;
Integer iObj = new Integer(7);
int sum = i + iObj;
-------- 1.5 이후 --------
int sum = i + iObj.intValue():
- 기본형의 값을 객체로 자동변환하는 것을 오토박싱 반대는 언박싱
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10);
int value = list.get(0);