Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Tomcat
- 톰캣
- HTML
- 컨트롤러
- JDBC
- cmd
- Linux
- 키보드
- oracle
- 삼성증권
- 안드로이드 스튜디오
- 영상편집
- ibatis
- MySQL
- 티스토리챌린지
- letterspacing
- API
- 프로세스
- Docker
- java
- Database
- wsdl
- START WITH
- 스레드
- MariaDB
- http
- equals
- 스레드 덤프
- integer
- 오블완
Archives
- Today
- Total
블로그 이름
[JAVA] int, Integer 차이, Wrapper class 본문
기본타입
byte, short, int, long, float, double, char, boolean
wrapper class
Byte, Short, Integer, Long, Float, Double, Character, Boolean
int
- 산술연산이 가능하고 null로 초기화할 수 없다.
Integer
- 산술연산이 불가능하다. Unboxing 해야한다. (JDK 1.5 이후 AutounBoxing 자동으로 해주기 때문에 사용 가능)
- null 값 처리 가능
String 값을 int로 변환할때,
valueOf() : Integer 클래스 리턴 (산술연산 불가능)
parseInt() : int 리턴 (산술연산 가능)
int와 int끼리의 연산 : 비교 가능
int와 Integer 끼리의 연산 : Integer의 값으로 비교하므로 비교 가능
Integer와 Integer 끼리의 연산 : 값이 아닌 주소값으로 비교하므로 비교 불가능
int는 기본 타입
Integer는 참조 타입
Integer는 참조 타입이라 실제 객체가 아닌 객체의 주소를 저장하고 있고,
Integer.valueOf() 메소드는 -128~127 사이의 int형 값을 넘겨줄때 새 객체를 생성하지 않고 IntegerCache 객체를 사용하기 때문에 -128~127까지는 주소값이 같아 비교 시 true가 된다
때문에, Integer끼리 비교 시 equals를 사용해야한다.
혹은 Integer.intValue() 사용해서 값 꺼내서 비교하면 된다.
'개발 > Java' 카테고리의 다른 글
| [JAVA] Thread Dump (쓰레드 덤프) 생성하는법 (0) | 2024.09.23 |
|---|---|
| [JAVA] parseInt()와 intValue() 차이점 (0) | 2024.09.05 |
| [JAVA] JD-GUI 디컴파일러 사용하여 JAR 파일 열어보기 (0) | 2024.08.23 |
| [JAVA] JAVA 버전 변경하기 (1.8 -> 11) (0) | 2024.08.19 |
| 파일 풀경로에서 파일명 획득 (0) | 2024.06.26 |