Java의 Long 데이터 유형과 Int 데이터 유형의 차이

Bishal Awasthi 2023년10월12일
  1. Java의 intlong 데이터 유형
  2. Java의 IntegerLong 래퍼 클래스
  3. Java에서 intInteger 그리고 longLong의 차이점
Java의 Long 데이터 유형과 Int 데이터 유형의 차이

이 기사에서는 Java의 intlong 데이터 유형의 차이점에 대해 설명하고 IntegerLong 래퍼 클래스에 대해 설명합니다. 이러한 데이터 유형과 래퍼 클래스 간의 차이점을 이해하고 시나리오에 따라 사용할 데이터 유형을 결정할 수 있습니다.

Java의 intlong 데이터 유형

int 데이터 유형은 정수를 저장하는 Java의 기본 데이터 유형입니다. int는 변수 값의 크기와 유형을 지정한다는 의미입니다. 그러나 어떤 메서드도 호출할 수 없습니다. int의 크기는 4바이트입니다. -2,147,483,648부터 2,147,483,647까지의 값을 저장할 수 있습니다.

long 데이터 유형은 8바이트를 가진 Java의 또 다른 기본 데이터 유형이기도 합니다. 정수를 저장하는 데 int보다 더 넓은 범위가 있습니다. long 데이터 유형은 int가 보유할 수 없는 더 큰 정수를 보유하는 데 사용됩니다. -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지의 값을 저장할 수 있습니다.

예를 들어 int 데이터 유형으로 변수 num1을 생성하고 long 데이터 유형으로 num3 변수를 생성합니다. num1100 값을 할당하고 num315000000000L 값을 할당합니다. 콘솔에서 변수를 인쇄합니다. 다시 동일한 데이터 유형으로 다른 변수 num2를 만들고 2147483648 값을 할당합니다. 그런 다음 num2 변수를 인쇄합니다. 이러한 코드 줄은 클래스 내부의 기본 메서드 내부에 작성되어야 합니다.

첫 번째 코드 예제는 성공적으로 실행되지만 두 번째 예제는 오류가 발생합니다. 2147483648 값이 int 데이터 유형의 범위를 초과하기 때문입니다. long 데이터 유형의 값 뒤에 L을 작성하여 long 값을 나타냅니다.

예제 코드:

int num1 = 100;
long num3 = 15000000000L;
System.out.println(num1);
System.out.println(num3);

출력:

100 15000000000

예제 코드:

int num2 = 2147483648;
System.out.println(num2);

출력:

Main.java:3: error: integer number too large
 int num2 = 2147483648;
 ^
1 error

Java의 IntegerLong 래퍼 클래스

래퍼 클래스는 객체가 기본 데이터 유형을 저장할 수 있는 특정 유형의 클래스입니다. IntegerLong 래퍼 클래스에 대해 설명합니다. 래퍼 클래스에서 래퍼 개체를 만들 수 있으며 개체와 관련된 다른 메서드를 사용할 수 있습니다.

예를 들어 래퍼 클래스 Integer의 개체 myInt를 만들고 50 값을 할당합니다. 래퍼 클래스 Long에서 다른 개체 myLong을 만들고 326162165161616161 값을 할당합니다. myIntmyLong 변수를 출력합니다. 그런 다음 String 래퍼 클래스의 두 개체를 myString1myString2로 만듭니다. myIntmyLong 개체 각각과 함께 toString() 메서드를 사용합니다. 마지막으로 length() 메소드를 호출하여 myString1myString2 객체의 길이를 인쇄합니다.

아래 예에서는 Integer, LongString 래퍼 클래스에서 개체를 만들었습니다. 객체와 함께 toString()length()와 같은 메서드를 호출했습니다. toString() 메서드는 값을 문자열로 변환하고 length() 메서드를 사용하여 길이를 계산할 수 있습니다. 원시 데이터 유형에서 이러한 메소드에 액세스하려고 하면 할 수 없습니다. 따라서 래퍼 클래스를 사용하면 다양한 작업에 메서드를 사용하는 래퍼 개체를 만들 수 있습니다.

예제 코드:

Integer myInt = 50;
Long myLong = 326162165161616161L;

System.out.println(myInt);
System.out.println(myLong);

String myString1 = myInt.toString();
System.out.println(myString1.length());

String myString2 = myLong.toString();
System.out.println(myString2.length());

출력:

50
326162165161616161
2
18

Java에서 intInteger 그리고 longLong의 차이점

int 또는 longIntegerLong의 주요 차이점은 데이터 유형은 기본 유형이고 래퍼 클래스는 기본 유형이 아니라는 것입니다. 원시 데이터 유형은 특정 값을 보유하는 반면 래퍼 클래스의 개체는 저장된 데이터 위치에 대한 포인터일 뿐입니다.

Integer myInt = new Integer(5);
int num = 5

위의 myInt 개체는 데이터 5 위치에 대한 포인터일 뿐입니다. myInt 개체가 저장된 메모리는 5 값 위치의 메모리 주소를 포함합니다. 값의 위치에 대한 참조일 뿐입니다. 한편 변수 num이 저장된 메모리에는 5 값이 포함됩니다.

이 개념은 null 값으로 시각화할 수 있습니다. myInt 객체를 null 값으로 설정할 수 있지만 num 변수로는 동일한 작업을 수행할 수 없습니다. 개체는 참조 유형이기 때문에 개체는 null 주소를 참조할 수 있습니다. int 데이터 유형은 기본 값이고 참조할 수 없기 때문에 null 값을 포함할 수 없습니다. 따라서 객체에 null을 할당하면 null로 출력되지만 int 유형에 할당하면 오류가 발생합니다.

예제 코드:

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

출력:

null

예제 코드:

int num = null;
System.out.println(myInt);

출력:

Main.java:6: error: incompatible types: <null> cannot be converted to int
int num = null;
 ^
1 error

관련 문장 - Java Long

관련 문장 - Java Integer