- 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
- 모든 숫자 래퍼 클래스의 조상.(byte, short, integer, long, 등등...)
public abstract class Number implements java.io.Serializable { public abstract int inValue(); // new Integer(100)을 int형으로 바꿔주는 메서드 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");
- n진법의 문자열을 숫자로 변환하는 방법
int i4 = Integer.parseInt("100", 2) // 100(2) -> 4 int i5 = Integer.parseInt("100", 8) // 100(8) -> 64 int i6 = Integer.parseInt("100", 16) // 100(16) -> 256 int i7 = Integer.parseInt("FF", 16) // FF(16) -> 255 //int i8 = Integer.parseInt("FF") // NumberFormatException발생
- JDK1.5이전에는 기본형과 참조형간의 연산이 불가능
int i = 5; Integer iObj = new Integer(7); int sum = i + iObj; // 에러. 기본형과 참조형 간의 덧셈불가(JDK1.5 이전) -------- 1.5 이후 -------- int sum = i + iObj.intValue(): // 컴파일러가 자동으로 바꿈
- 기본형의 값을 객체로 자동변환하는 것을 오토박싱 반대는 언박싱
ArrayList<Integer> list = new ArrayList<Integer>(); list.add(10); // 오토박싱. 10 -> new Integer(10) int value = list.get(0); // 언박싱. new Integer(10) -> 10