자바는 객체지향 언어임에도 자바 안에 객체가 아닌 기본형이 있다. 기본형은 객체가 아니기에 다음과 같은 한계가 있다.
package lang.wrapper;
public class MyIntegerNullMain0 {
public static void main(String[] args) {
int[] intArr = {-1, 0, 1, 2, 3};
System.out.println(findValue(intArr, -1)); //-1
System.out.println(findValue(intArr, 0));
System.out.println(findValue(intArr, 1));
System.out.println(findValue(intArr, 100)); //-1
}
private static int findValue(int[] intArr, int target) {
for (int value : intArr) {
if (value == target) {
return value;
}
}
return -1;
}
}
findVaue()
는 배열에 찾는 값이 있으면 해당 값을 반환하고, 찾는값이 없으면 -1을 반환한다.byte
=> BYTE
int
=> Integer
long
=> Long
float
=> Float
double
=> Double
char
=> Character
boolean
=> Boolean
equals()
메서드로 비교해야한다.intValue()
(언박싱):박스에 들어있는 물건을 꺼내는 것 같다고 언박싱이라하며, 객체에서 다시 기본형으로 변경된다.equals()
를 재정의 해두었다. 값을 비교하려면 equals()
를 사용해야 한다자바에서는 오랜기간 개발자들이 기본형을 참조클래스로 ㅂ녀호나하거나 래퍼클래스를 기본형으로 변환하는 일이 자주 발생했다. 이런 문제를 해결하기 위해 오토박싱/오토언박싱 기능을 지원한다.
valueOf()
: 참조 타입을 반환parseInt()
: 문자열을 기본형으로 변환compareTo()
: 내값과 인수로 넘어온 값을 빅하여, 내값이 크면 1 같으면 0 작으면 -1을 반환Integer,sum(),Integer.min(),Integer.max() : static
메서드로 간단한 덧셈, 최대, 최소 값 연산을 수행