Java에서 Integer와 int의 차이점은 무엇입니까?
예를 들어 다음과 같은 작업을 수행할 수 있습니다.
int n = 9;
하지만 그렇지 않다:
Integer n = 9;
다음과 같은 작업을 수행할 수 있습니다.
Integer.parseInt("1");
하지만 그렇지 않다:
int.parseInt("1");
int
원시 유형입니다.유형 변수int
나타낼 정수의 실제 이진수 값을 저장합니다. int.parseInt("1")
이치에 맞지 않다int
클래스가 아니기 때문에 메서드가 없습니다.
Integer
는 Java 언어의 다른 어떤 것과도 다르지 않은 클래스입니다.유형 변수Integer
참고 자료를 저장하다Integer
다른 참조(객체) 유형과 마찬가지로 객체도 사용할 수 있습니다. Integer.parseInt("1")
스태틱 메서드에 대한 호출입니다.parseInt
수업 중에Integer
(이 메서드에 의해 실제로 반환되는 것은int
이 아니라Integer
).
좀 더 구체적으로 말하면Integer
단일 입력 필드를 가진 클래스입니다.int
이 클래스는 필요한 장소에서 사용됩니다.int
범용 타입이나 무효가 필요한 상황 등 다른 오브젝트와 동일하게 취급됩니다.
Java의 모든 원시 유형에는 동등한 래퍼 클래스가 있습니다.
byte
가지다Byte
short
가지다Short
int
가지다Integer
long
가지다Long
boolean
가지다Boolean
char
가지다Character
float
가지다Float
double
가지다Double
래퍼 클래스는 오브젝트클래스에서 상속되지만 프리미티브 클래스는 상속되지 않습니다.따라서 오브젝트 참조 또는 Generics와 함께 컬렉션에서 사용할 수 있습니다.
Java 5부터 자동 박스가 있으며, primitive 클래스와 wrapper 클래스 간의 변환은 자동으로 이루어집니다.다만, 미묘한 버그나 퍼포먼스의 문제가 발생할 가능성이 있으므로 주의해 주세요.변환에 대해 명확하게 말하는 것은 문제가 되지 않습니다.
Integer는 primitive type int의 래퍼에 불과합니다.Integer 클래스의 모든 기능을 사용하여 생활을 조금 더 쉽게 만들 수 있습니다.
Java를 처음 접하는 경우 Java 문서를 참고해야 합니다.예를 들어, Integer Class에 대해 알고 싶은 것은 모두 상세하게 문서화되어 있습니다.
이것은 Integer 클래스의 설명서에서 직접 인용한 것입니다.
Integer 클래스는 오브젝트 내에서 primitive type int 값을 랩합니다.Integer 유형의 개체에는 int 유형의 단일 필드가 포함됩니다.
int 변수는 32비트 부호 있는 정수 값을 유지합니다.정수(대문자 I)는 (클래스) 유형의 Integer 또는 null 객체에 대한 참조를 유지합니다.
Java는 Integer 객체가 int 연산자에 대한 인수로 발생하거나 int 변수에 할당되거나 Int 값이 Integer 변수에 할당될 때마다 Integer에서int로 자동으로 캐스트합니다.이 캐스팅을 복싱/언박싱이라고 합니다.
Null을 참조하는 Integer 변수가 명시적으로 또는 암묵적으로 언박스로 되어 있는 경우 Null Pointer예외가 느려집니다.
(위 텍스트에서 "변수"란 로컬 변수, 필드 또는 파라미터를 의미합니다.)
Integer
Java에서 래퍼 유형을 참조하는 반면,int
원시 유형입니다.Java에서 원시 데이터 유형을 제외한 모든 것은 Java가 고도로 검증된 순수 객체 지향 프로그래밍 언어임을 암시하는 개체처럼 구현됩니다.필요한 경우 Java에서 모든 원시 유형을 래퍼 유형으로도 사용할 수 있습니다.원시 유형에서는 성능상의 이점을 얻을 수 있으므로 래퍼 유형은 필요한 경우에만 사용해야 합니다.
예시는 다음과 같습니다.
Integer n = 9;
상수9
자동 박스가 되어 있다(auto-boxing
그리고.unboxing
에서 자동적으로 일어나다java 5
이후)까지Integer
그런 식으로 문장을 사용할 수 있고Integer n = new Integer(9)
이것은, 실제로, 스테이트먼트를 통해서 실현됩니다.Integer.valueOf(9).intValue();
Integer는 래퍼 클래스/개체이고 int는 원시 유형입니다.이 차이는 int 값을 컬렉션에 저장하는 경우 큰 역할을 합니다.이는 오브젝트만 값으로 받아들이기 때문입니다(jdk1.4까지).JDK5 이후는 오토박스로 인해 전혀 다른 이야기입니다.
이것은 Java에서 가져온 것입니다. 컴플리트 레퍼런스, 제9판
Java는 int 또는 double과 같은 원시 유형(단순 유형이라고도 함)을 사용하여 언어로 지원되는 기본 데이터 유형을 유지합니다.오브젝트보다는 퍼포먼스를 위해 이 수량에 원시형이 사용됩니다.이러한 값에 개체를 사용하면 가장 간단한 계산에도 허용할 수 없는 오버헤드가 추가됩니다.따라서 원시 유형은 개체 계층의 일부가 아니며 개체를 상속하지 않습니다.
원시 유형이 제공하는 성능 이점에도 불구하고 개체 표현이 필요할 수 있습니다.예를 들어 메서드를 참조하여 기본 유형을 전달할 수 없습니다.또한 Java에 의해 구현된 많은 표준 데이터 구조는 객체에서 작동하므로 이러한 (개체별) 데이터 구조를 사용하여 원시 유형을 저장할 수 없습니다.이러한 상황(및 기타)을 처리하기 위해 Java는 객체 내의 원시 유형을 캡슐화하는 클래스인 유형 래퍼를 제공합니다.
래퍼 클래스는 Java의 자동 상자 기능과 직접 관련이 있습니다.유형 래퍼에는 Double, Float, Long, Integer, Short, Byte, Character 및 Boolean이 있습니다.이러한 클래스는 원시 유형을 Java의 개체 계층에 완전히 통합할 수 있는 광범위한 메서드를 제공합니다.
int는 객체가 아닌 원시 유형입니다.즉, 관련된 메서드가 없습니다.Integer는 메서드(parseInt 등)를 가진 객체입니다.
새로운 Java에서는 자동 박싱(및 언박싱) 기능이 있습니다.즉, 컴파일러는 Integer.valueOf(int) 또는 정수를 삽입합니다.필요한 경우 intValue()를 입력합니다.즉, 실제로 글쓰기가 가능하다는 것입니다.
Integer n = 9;
라고 해석되고 있다.
Integer n = Integer.valueOf(9);
Java int는 기본 데이터 유형이고 Integer는 Helper 클래스이며, 한 데이터 유형을 다른 데이터 유형으로 변환하는 데 사용됩니다.
예를 들어 다음과 같습니다.
double doubleValue = 156.5d;
Double doubleObject = new Double(doubleValue);
Byte myByteValue = doubleObject.byteValue ();
String myStringValue = doubleObject.toString();
기본 데이터 유형은 Helper 클래스가 복잡하고 힙 메모리에 저장되는 사용 가능한 가장 빠른 메모리입니다.
"David Gassner" Java Essential Training 참조.
int
는 정수를 나타내는 원시 유형입니다.반면에.Integer
를 랩하는 오브젝트입니다.int
.그Integer
object를 사용하면 16진수, 문자열 등으로 변환하는 등의 기능이 향상됩니다.
OOP 컨셉은 다음과 같은 방법으로도 사용할 수 있습니다.Integer
예를 들어 제네릭스에 Integer를 사용할 수 있습니다.Collection
).<Integer>
int
기본 데이터 유형입니다.Integer
는 Java에서 참조 또는 래퍼 유형(클래스)입니다.
끝나고java 1.5
자동 박스와 언박스의 개념을 도입하고 있습니다.int
또는Integer
이것처럼.
int a= 9
Integer a = 9 // both valid After Java 1.5.
왜죠
Integer.parseInt("1");
하지만 아니다int.parseInt("1");
??
Integer
는 에서 정의된 클래스입니다.jdk
라이브러리 및parseInt()
static 메서드는Integer
학급
그렇게,Integer.parseInt("1");
자바에서는 가능하지만int
는 Java에서 primitive type(키워드처럼 표시됨)입니다.그래서 전화를 할 수 없다.parseInt()
와 함께int
.
Java 코드 런타임을 최적화하려면int
다음과 같은 기본 유형이 추가되었습니다.float
,bool
etc는 래퍼 클래스와 함께 제공되므로 필요에 따라 표준 Java 객체로 변환하여 멤버 함수로 제공되는 많은 유틸리티와 함께 사용할 수 있습니다(예:Integer.parseInt("1")
).
언급URL : https://stackoverflow.com/questions/8660691/what-is-the-difference-between-integer-and-int-in-java
'programing' 카테고리의 다른 글
javac 옵션: 지정된 디렉토리 아래에 있는 모든 Java 파일을 재귀적으로 컴파일합니다. (0) | 2022.08.09 |
---|---|
webpack 2 및 vue-cli를 사용하여 로컬 글꼴로 로드 (0) | 2022.08.09 |
커스텀 입력 Vue 컴포넌트를 테스트하는 방법 (0) | 2022.08.09 |
String on String Literals의 intern 메서드는 언제 사용해야 합니까? (0) | 2022.08.09 |
java.time을 변환합니다.localDate를 java.util로 변환합니다.날짜 유형 (0) | 2022.08.09 |