[Java] 자바 정수형 int / long / BigInteger 비교🤔

kingkang·2024년 10월 5일
1

🤓 Java

목록 보기
1/3
post-thumbnail

안녕하세요! 자바 공부한지 2주 정도 되어가는 자린이입니다😎
오늘은 자바의 정수형 중 int, long, BigInteger에 대해 공부해 보겠습니다. 알고리즘 문제를 풀다 보면 상황에 따라 적절한 자료형 선택이 필요한데요?! 각 타입의 특징, 사용법, 그리고 언제 어떤 것을 선택해야 하는지 자세히 알아보겠습니다🔍


int

int는 자바에서 가장 일반적으로 사용되는 정수 타입입니다.

특징

  • 기본 데이터 타입
  • 32비트(4바이트) 크기
  • 범위 : -2,147,483,648 ~ 2,147,483,647

사용법

int num = 42;
int sum = num + 10;

장점

  • 메모리 사용이 적음
  • 연산 속도가 빠름

단점

  • 큰 숫자를 다룰 때 오버플로우 발생 가능

long

long은 int보다 더 큰 범위의 정수를 다룰 때 사용합니다.

특징

  • 기본 데이터 타입
  • 64비트(8바이트) 크기
  • 범위 : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

사용법

long bigNum = 1234567890123L;  // 끝에 'L' 또는 'l'을 붙여야 함
long result = bigNum * 2L;

장점

  • int보다 훨씬 큰 범위의 숫자 표현 가능
  • 기본 연산자 사용 가능

단점

  • int보다 메모리 사용량이 2배
  • int에 비해 연산 속도가 약간 느림

BigInteger

BigInteger는 이론상 무한대의 정수를 다룰 수 있는 클래스입니다.

특징

  • java.math 패키지의 클래스
  • 객체 타입
  • 메모리가 허용하는 한 무한대의 정수 표현 가능

사용법

import java.math.BigInteger;

BigInteger hugeNum = new BigInteger("123456789012345678901234567890");
BigInteger result = hugeNum.add(BigInteger.valueOf(1000));

장점

  • 거의 무제한의 정수 표현 가능
  • 오버플로우 걱정 없음
  • 정밀한 수학 계산 가능

단점

  • 기본 타입보다 메모리 사용량이 많음
  • 연산 속도가 상대적으로 느림
  • 산술 연산에 메서드 호출 필요

성능 비교

속도 : int > long > BigInteger
메모리 사용 : int < long < BigInteger
표현 가능한 범위 : int < long < BigInteger


결론

  1. int는 일반적인 정수 계산에 가장 적합하며 메모리 효율성과 연산 속도가 뛰어납니다.
  2. long은 int로 표현하기에는 큰 숫자를 다룰 때 사용합니다.
  3. BigInteger는 정밀도가 중요한 상황 혹은 매우 큰 숫자를 다룰 때 사용합니다. 성능은 위의 두 타입보다는 떨어지지만 정확성이 중요할 때 선택하시면 됩니다👍🏻
profile
꿈을 꾸물꾸물 꾸지 말자!

1개의 댓글

comment-user-thumbnail
2024년 10월 23일

자바핑

답글 달기