Java의 Long 데이터 유형과 Int 데이터 유형의 차이
이 기사에서는 Java의 int
와 long
데이터 유형의 차이점에 대해 설명하고 Integer
및 Long
래퍼 클래스에 대해 설명합니다. 이러한 데이터 유형과 래퍼 클래스 간의 차이점을 이해하고 시나리오에 따라 사용할 데이터 유형을 결정할 수 있습니다.
Java의 int
및 long
데이터 유형
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
변수를 생성합니다. num1
에 100
값을 할당하고 num3
에 15000000000L
값을 할당합니다. 콘솔에서 변수를 인쇄합니다. 다시 동일한 데이터 유형으로 다른 변수 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의 Integer
및 Long
래퍼 클래스
래퍼 클래스는 객체가 기본 데이터 유형을 저장할 수 있는 특정 유형의 클래스입니다. Integer
및 Long
래퍼 클래스에 대해 설명합니다. 래퍼 클래스에서 래퍼 개체를 만들 수 있으며 개체와 관련된 다른 메서드를 사용할 수 있습니다.
예를 들어 래퍼 클래스 Integer
의 개체 myInt
를 만들고 50
값을 할당합니다. 래퍼 클래스 Long
에서 다른 개체 myLong
을 만들고 326162165161616161
값을 할당합니다. myInt
및 myLong
변수를 출력합니다. 그런 다음 String
래퍼 클래스의 두 개체를 myString1
및 myString2
로 만듭니다. myInt
및 myLong
개체 각각과 함께 toString()
메서드를 사용합니다. 마지막으로 length()
메소드를 호출하여 myString1
및 myString2
객체의 길이를 인쇄합니다.
아래 예에서는 Integer
, Long
및 String
래퍼 클래스에서 개체를 만들었습니다. 객체와 함께 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에서 int
와 Integer
그리고 long
과 Long
의 차이점
int
또는 long
과 Integer
및 Long
의 주요 차이점은 데이터 유형은 기본 유형이고 래퍼 클래스는 기본 유형이 아니라는 것입니다. 원시 데이터 유형은 특정 값을 보유하는 반면 래퍼 클래스의 개체는 저장된 데이터 위치에 대한 포인터일 뿐입니다.
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