본문 바로가기
프로그래밍💻/자바

[JAVA] Int, Integer 너네 다른게 뭐니?

by 베이비주니어개발자 2020. 4. 9.
반응형

 

안녕하세요, 여러분.

자바를 공부하고 계시는 분들이라면 Int와 Integer를 쓰신 경험이 있으실텐데요.

혹시 뜻은 알고 사용하시나요??

 

저만 하더라도 프로그래밍을 처음 공부했을 때,

Int와 Integer의 뜻을 모르고 대충 코딩했던 경험때문에

취직을 하고 나서 Int와 Integer를 공부하고 이런 뜻이었구나 라고 깨달은 경험이 있는데요.

 

그래서 여러분은 먼저 공부하고 나서 쓰시길 바라는 마음으로

간단하게 Int와 Integer에 대해 알려드리겠습니다.

대표사진 삭제

사진 설명을 입력하세요.

1. Int의 개념

- 먼저, Int는 Primitive 자료형 입니다.

★ Primitive 자료형이란?

- 데이터를 가지는 자료형을 뜻함. 원시적인 자료형

- 메소드(Method)를 가지지 못함

ex) String의 toString

다른 Primitive 자료형 byte, short, int, long, float.......

결국 Int는 다른 데이터로서의 활용을 하지 못하고, 데이터만을 갖고 있는 자료형이 되겠죠?

 

2. Integer의 개념

- Int가 Primitive 자료형이라면 Integer는 Wrapper 클래스입니다.

★ Wrapper 클래스란?

- 래퍼 클래스는 객체가 기본 데이터 유형을 래핑하거나 포함하는 클래스

래퍼 클래스에 대한 객체를 만들 때 필드를 포함하고 이 필드에 기본 데이터 유형의 저장이 가능!

 

 

3. Int, Integer의 장점, 단점

- 저장공간의 문제

byte

1 byte

short

2 bytes

int

4 bytes

long

8 bytes

float

4 bytes

double

8 bytes

boolean

1 bit

char

2 bytes

 

Java Data Types

Java Data Types ❮ Previous Next ❯ Java Data Types As explained in the previous chapter, a variable in Java must be a specified data type: Example int myNum = 5 ; // Integer (whole number) float myFloatNum = 5.99f ; // Floating point number char myLetter = 'D' ; // Character boolean myBool = true ; /...

www.w3schools.com

먼저, Int는 설명드린 대로 원시 데이터형이기 때문에, 차지하는 공간은 4Byte에 불과합니다.

다른 원시 데이터형들도 1bit에서 8Byte 사이일 정도로 차지하는 용량이 작습니다.

이는 래핑클래스 처럼 메소드를 가지지도 않고, 오직 데이터만 저장하기 때문에 저장공간이 작습니다.

이 또한, 저장공간을 잡아먹는 프로그램을 만들 경우에는 필요한 경우가 아니라면 원시 데이터형을 쓰는 게 훨씬 나아보이죠.

 

하지만, Integer의 장점이 훨씬 많습니다.

먼저 , Int는 Null선언을 하지 못합니다.

또한 리스트로서의 사용도 불가능합니다.

int imInt = null; System.out.println(imInt);

 

실행을 하기 전에 에러가 발생하게 됩니다.

에러의 내용은 Type mismatch: cannot convert from null to int로,

int는 null을 갖지 못한다고 에러가 발생하고 있습니다.

 

Integer imInteger = null; System.out.println(imInteger);

 

하지만, Integer를 사용하게 된다면, 에러도 발생하지 않고

제대로 Null이라고 출력이 나오게 됩니다.

 

 

4. 어떤 상황에서 사용해야 하는지

결국 위에 설명한 대로 Int는 프로그램에 무리가 가지 않기 위해

Integer는 Null, 또는 데이터를 Wrapper 할 경우에 사용해야 합니다.

 

 

5. int <> Integer 변환하기

int numInt = 100; Integer numInteger = new Integer(numInt); int numInt = 100; Integer numInteger = Integer.valueOf(numInt);

 

int에서 Integer 변환

Integer numInteger = new Integer(100); int numInt = numInteger; Integer numInteger = new Integer(100); int numInt = numInteger.intValue();

 

Integer에서 int 변환

 

하지만 주의 사항이 있습니다! 위에서 설명드린 대로 Int에는 Null이 들어갈 수 없는데요.

Integer numInteger = new Integer(null); int numInt = numInteger;

 

이 경우에는 빌드 에러는 안나오게 되지만,

System.out.print()를 사용해 출력하게 된다면

Exception in thread "main" java.lang.NumberFormatException: null at java.base/java.lang.Integer.parseInt(Integer.java:614) at java.base/java.lang.Integer.<init>(Integer.java:1096) at TestMain.main(TestMain.java:3)

 

이렇게 에러가 발생하게 됩니다...

 

Int와 Integer의 차이점을 조금은 알게 되셨나요?

자바 열심히 공부해요... 같이....

혹시 잘못된 정보나 추가 정보가 있다면 댓글 부탁드리겠습니다!

 

반응형

'프로그래밍💻 > 자바' 카테고리의 다른 글

[eclipse] 이클립스 문자 코드 바꾸기  (0) 2020.04.05

댓글