기본 데이터타입을 객체 형태로 관리해주는 클래스 모음
-> java.lang
패키지에 위치
기본 데이터타입과 1 : 1로 대응하는 8개 클래스 제공
(Byte, Short, Integer, Long, Float, Double, Character, Boolean : 대문자로 적어야 함!)
Wrapper 클래스에서 제공하는 상수, 메서드 등을 활용하여 기본 데이터타입 데이터 다양하게 처리 가능
// byte 타입
System.out.println("byte 타입 메모리 크기(bit) : " + Byte.SIZE);
System.out.println("byte 타입 메모리 크기(byte) : " + Byte.BYTES);
System.out.println("byte 타입 메모리 최소값 : " + Byte.MIN_VALUE);
System.out.println("byte 타입 메모리 최대값 : " + Byte.MAX_VALUE);
// short 타입
System.out.println("short 타입 메모리 크기(bit) : " + Short.SIZE);
System.out.println("short 타입 메모리 크기(byte) : " + Short.BYTES);
System.out.println("short 타입 메모리 최소값 : " + Short.MIN_VALUE);
System.out.println("short 타입 메모리 최대값 : " + Short.MAX_VALUE);
// character 타입
System.out.println("character 타입 메모리 크기(bit) : " + Character.SIZE);
System.out.println("character 타입 메모리 크기(byte) : " + Character.BYTES);
System.out.println("character 타입 메모리 최소값 : " + (int)Character.MIN_VALUE);
System.out.println("character 타입 메모리 최대값 : " + (int)Character.MAX_VALUE);
// character 타입만 최소값과 최대값 구할 때 int 타입으로 형변환 필요함!!!!
// float 타입
System.out.println("float 타입 메모리 크기(bit) : " + Float.SIZE);
System.out.println("float 타입 메모리 크기(byte) : " + Float.BYTES);
System.out.println("float 타입 메모리 최소값 : " + Float.MIN_VALUE);
System.out.println("float 타입 메모리 최대값 : " + Float.MAX_VALUE);
// int 타입
System.out.println("int 타입 메모리 크기(bit) : " + Integer.SIZE);
System.out.println("int 타입 메모리 크기(byte) : " + Integer.BYTES);
System.out.println("int 타입 메모리 최소값 : " + Integer.MIN_VALUE);
System.out.println("int 타입 메모리 최대값 : " + Integer.MAX_VALUE);
// double 타입
System.out.println("double 타입 메모리 크기(bit) : " + Double.SIZE);
System.out.println("double 타입 메모리 크기(byte) : " + Double.BYTES);
System.out.println("double 타입 메모리 최소값 : " + Double.MIN_VALUE);
System.out.println("double 타입 메모리 최대값 : " + Double.MAX_VALUE);
기본 데이터 타입 -> Wrapper 클래스 타입 객체로 자동 변환 기능
Java 1.5 변환 과정을 생략해도 자동으로 변환 수행하도록 변경됨
int num1 = 10;
Integer n1;
n1 = num1;
// 오토 박싱
Wrapper 클래스 타입 객체 -> 기본 데이터 타입으로 자동 변환 기능
int num2;
Integer n2 = 20;;
num2 = n2;
// 오토 박싱
- 기본 데이터타입과 Wrapper 클래스타입 간 연산을 수행할 경우 Wrapper 클래스 타입 객체를 오토 언박싱 후 연산 수행함
- Object 타입 변수에 기본 데이터타입 저장 가능
-> 기본데이터타입을 Wrapper 클래스 타입을 오토박싱 후 다시 Object 타입으로 업캐스팅 일어남
주로 form 태그의 input 태그로 데이터를 입력받거나 자바, 안드로이드 등 GUI 환경으로 데이터 입력 받을 때 수치 데이터를 입력하더라도 문자열로 취급
-> 해당 문자열을 연산하려면 Wrapper 클래스에서 제공하는 메서드 통해 변환해야 함
< 기본 문법 >
Wrapper클래스명.pase기본데이터타입(문자열 변수 또는 데이터)
- 정수형으로 변환할 경우 : Integer.parseInt();
- 실수형으로 변환할 경우 : Double.parseDouble();
String strNum = "100.0";
Double dNum = Double.parseDouble(strNum);
System.out.println(dNum);
strNum = "1234";
int iNum = Integer.parseInt(strNum);
System.out.println(iNum);
기본 데이터타입들을 다양하게 처리하기 위한 메서드 제공됨
주로 static
메서드 형태로 호출하여 사용
-> 클래스명.메서드명() 형태로 호출
기본 데이터타입과 Wrapper 클래스 객체 모두 활용 가능
max()
: 두 정수의 최대값을 계산하는 메서드
int num1 = 10, num2 = 20;
Integer n1 = 10, n2 = 20;
System.out.println(Integer.max(num1, num2));
System.out.println(Integer.max(n1, n2));
min()
: 두 정수의 최소값을 계산하는 메서드
system.out.println(Integer.min(num1, num2));
< 10진수 정수를 다양한 형태의 진법으로 변환 >
toBinaryString
: 2진법
toOctalString
: 8진법
toHexString
: 16진법
System.out.println("정수 10을 2진수로 변환 : " + Integer.toBinaryString(num1));
System.out.println("정수 10을 8진수로 변환 : " + Integer.toOctalString(num1));
System.out.println("정수 10을 16진수로 변환 : " + Integer.toHexString(num1));
< Character 클래스를 활용한 문자 데이터 처리 >
Character.isXXX()
: 판별
Character.toXXX()
: 변환
char ch = 'A';
System.out.prinln("원본 문자 데이터 : " + ch);
if(Character.isUpperCase(ch)) {
// 문자가 대문자라면 (isUpperCase : 대문자 판별)
System.out.println("소문자로 변환 : " + Character.toLowerCase(ch));
// toLowerCase : 소문자 변환
}else if (Character.isLowerCase(ch)) {
// 문자가 소문자라면 (isLowerCase : 소문자 판별)
System.out.println("대문자로 변환 : " + Character.toUpperCase(ch));
// toUpperCase : 대문자 변환
}else if(Character.isDigit(ch)) {
// 문자가 숫자라면 (isDigit : 숫자 판별)
}else if(Character.isWhitespace(ch)) {
// 문자가 공백이라면 (isWhitespace : 공백 판별)
}else {
System.out.println("기타 문자");
}