본문 바로가기
Java 정리

[JAVA] Long <-> long , Integer <-> int 차이점 정리

by neVerThe1ess 2024. 12. 4.

 

정수의 타입으로 대표적으로 int 를 많이 사용하게 된다. 

웬만하면 int 만 사용해도 큰 문제 없이 사용할 수 있지만!!!

 

간혹 int 로 해결이 되지 않은 경우가 있다. 

 

그때 Integer , Long , long 을 사용할 수 있는데 어떠한 상황에 어떠한 타입을 사용해야하는지 정하려면 정확하게 타입을 이해해야 한다! 

 

크게 기본타입, 박싱된 기본 타입으로 분류 할 수 있다. 

 

- 기본타입 : int , long ,double , boolean 등
- 박싱된 기본타입(참조타입)  : Integer , Long, Double , Boolean 

 

int a = 1 , b =1;
Integer c = new Integer(1);
Integer d = new Integer(1);

System.out.println("기본타입 : " + (a==b));
System.out.println("박싱타입 : " + (c==d));

 

기본타입 인 int 형식으로 두 수를 비교했을 때는 true 
박싱타입 인 Integer 형식으로 두 수를 비교했을때는 false 이다.

왜냐? 

박싱 타입에는 값 외에도 식별성이라는 속성이 있기 때문입니다. 
보여지는 값은 같지만, 다른 식별자로 false 가 반환됩니다. 

(박싱타입은 equals 함수를 사용해주면 된다.)

System.out.println("박싱타입 equal : " + c.equals(d));

 

⚡Integer  vs int

  • Integer 은 null 허용
  • int 는 null 사용 불가

Long vs long 

  • Long 은 null 허용
  • long 은 null 사용 불가 

int vs long

 

int형 

  • 32bit
  • 정수를 나타내는 데이터 타입
  • 범위 : -2147483648 ~ 2147483647

long 형

  • 64bit
  • 정수를 나타내는 데이터 타입
  • 범위 : -9223372036854775808 ~ 9223372036854775807

 

 💡  각 상황에 맞춰 사용하면 되지만 기본타입과 박싱된 기본타입을 선택해야 한다면 가능하면 간단하고 빠른 기본타입을 사용하는 것이 좋다. 

'Java 정리' 카테고리의 다른 글

HashSet 과 HashMap 정리하기(차이점)  (0) 2024.12.16
[JAVA] Comparable vs Comparator 비교  (0) 2024.11.18