목차
💭Intro
알고리즘 문제를 풀다가 문제가 안 풀려서 여러 블로그를 살펴보았는데, int가 아닌 Integer을 쓰는 것을 발견했다. 그런데 갑자기 int가 아닌 Integer을 쓰는 이유에 대해 궁금해졌다. 그래서 이 둘의 차이점을 찾아보기 시작했다.
📂content
1. int란?
- 자료형에서 기본형(primitive type)에 속함
- 산술 연산 가능
- null로 초기화X
2. Integer란?
- 래퍼 클래스(wrapper class)
-> 클래스이기 때문에 클래스가 가지는 특성(멤버변수, 생성자, 함수 등이 존재)을 포함함. - Unboxing하지 않을 시 산술 연산 불가능
- null값 처리 가능
2-1. 왜 사용?
- 기본 유형을 사용할 수 없는 Collection 객체로 작업할 때
- 메소드의 인수로 객체 타입만 요구할 때
- 객체간의 비교가 필요할 때
3. Boxing? Unboxing?
1. boxing
primitive type -> wrapper class
2. unboxing
wrapper class -> primitive
3-1. parseInt와 valueOf의 차이
이 둘은 모두 Integer의 메소드이다.
parseInt은 매개변수를 받아 int를 반환한다.
valueOf는 매개변수를 받아 Integer을 반환한다.
그렇다면, Integer.valueOf(10)+Integer.valueOf(20)의 결과값은 무엇일까?
정답은 30이다. Integer은 앞서서 산술연산이 불가능하다고 했다. 하지만 위와 같은 경우는 AutoUnboxing이 적용되기 때문에, Integer가 int로 자동형변환이 되어 연산이 가능해진다.
📑 출처 및 참고자료
https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
http://www.tcpschool.com/java/java_api_wrapper
감사합니다😊
'💻개발 > JAVA' 카테고리의 다른 글
split(".") 예상결과가 나오지 않는 이유 (0) | 2024.02.17 |
---|---|
알고리즘) Stringbuilder 왜 사용할까? (1) | 2024.01.11 |
리터럴 (0) | 2023.06.23 |
숫자에 _(언더바) (0) | 2023.06.22 |