[java] Java에서 Integer와 int의 차이점은 무엇입니까?

예를 들어 왜 할 수 있습니까?

int n = 9;

하지만:

Integer n = 9;

그리고 당신은 할 수 있습니다 :

Integer.parseInt("1");

하지만:

int.parseInt("1");



답변

int기본 유형입니다. 유형의 변수는 int나타내려는 정수의 실제 이진 값을 저장합니다. 클래스 가 아니기int.parseInt("1") 때문에 의미 int없으므로 메서드가 없습니다.

IntegerJava 언어의 클래스와 다르지 않습니다. 유형의 변수는 다른 참조 (객체) 유형과 마찬가지로 객체에 대한 참조Integer저장 합니다. 는 클래스 에서 정적 메소드에 대한 호출 입니다 (이 메소드는 실제로는 아닌를 반환 합니다 ).IntegerInteger.parseInt("1")parseIntIntegerintInteger

좀 더 구체적으로 말하면 Integer유형이 단일 인 클래스입니다 int. 이 클래스는 int일반 유형이나 널 입력이 필요한 상황과 같이 다른 오브젝트와 같이 취급 해야하는 경우 에 사용됩니다 .

Java의 모든 기본 유형에는 동등한 랩퍼 클래스가 있습니다.

  • byte 있다 Byte
  • short 있다 Short
  • int 있다 Integer
  • long 있다 Long
  • boolean 있다 Boolean
  • char 있다 Character
  • float 있다 Float
  • double 있다 Double

래퍼 클래스는 Object 클래스에서 상속되며 기본 클래스는 상속하지 않습니다. 따라서 Object 참조 또는 Generics가있는 컬렉션에서 사용할 수 있습니다.

자바 5부터 우리는 오토 박스를 가지고 있으며, 원시 클래스와 래퍼 클래스 사이의 변환은 자동으로 수행됩니다. 그러나 미묘한 버그와 성능 문제가 발생할 수 있으므로주의하십시오. 전환에 대해 명백한 것은 결코 아프지 않습니다.


답변

정수는 클래스이고 int는 기본 유형입니다.

다음 링크에서 읽으십시오.


답변

Integer는 기본 유형 int의 래퍼입니다. Integer 클래스의 모든 기능을 사용하여 인생을 조금 더 쉽게 만들 수 있습니다.

Java를 처음 사용하는 경우 Java 설명서를 숙지해야합니다. 예를 들어, 정수 클래스 에 대해 알고 싶은 내용이 자세히 설명되어 있습니다.

이것은 Integer 클래스에 대한 문서에서 나온 것입니다.

Integer 클래스는 기본 유형 int의 값을 객체에 래핑합니다. Integer 유형의 오브젝트에는 유형이 int 인 단일 필드가 포함됩니다.


답변

int 변수는 32 비트 부호있는 정수 값을 보유합니다. Integer (자본 I)는 (클래스) 유형 Integer의 오브젝트에 대한 참조 또는 널을 보유합니다.

자바는 자동적으로 둘 사이에 캐스트를한다; Integer 객체가 int 연산자에 대한 인수로 발생하거나 int 변수에 할당되거나 int 값이 Integer 변수에 할당 될 때마다 Integer에서 int로 이 캐스팅을 박싱 / 언 박싱이라고합니다.

null을 참조하는 Integer 변수가 명시 적으로 또는 암시 적으로 언 박싱 된 경우 NullPointerException이 발생합니다.

위의 텍스트에서 “변수”라는 용어는 지역 변수, 필드 또는 매개 변수를 의미합니다.


답변

Integer Java에서 랩퍼 유형을 참조하는 반면 int기본 유형은 . Java에서 기본 데이터 유형을 제외한 모든 것은 Java를 의미하는 객체가 고품질의 순수한 객체 지향 프로그래밍 언어 인 것처럼 구현됩니다. 필요한 경우 모든 프리미티브 유형을 Java에서 랩퍼 유형으로도 사용할 수 있습니다. 기본 유형에서 일부 성능 이점을 얻을 수 있으므로 래퍼 유형은 필요할 때만 사용해야합니다.

아래 예와 같이.

Integer n = 9;

상수가 9되고있는 자동 박스 ( auto-boxingunboxing에서 자동으로 발생 java 5이후)에 Integer따라서 당신은 또한 그와 같은 문을 사용할 수 있습니다 Integer n = new Integer(9). 이것은 실제로 진술을 통해 달성됩니다.Integer.valueOf(9).intValue();


답변

int는 객체가 아닌 기본 유형입니다. 이는 연관된 메소드가 없음을 의미합니다. 정수는 메소드가있는 객체입니다 (예 : parseInt).

최신 자바에는 자동 권투 및 언 박싱 기능이 있습니다. 즉, 컴파일러는 필요한 곳에 Integer.valueOf (int) 또는 integer.intValue ()를 삽입합니다. 그것은 실제로 쓸 수 있음을 의미합니다

Integer n = 9;

이것은 다음과 같이 해석됩니다

Integer n = Integer.valueOf(9);


답변

정수는 랩퍼 클래스 / 오브젝트이고 int는 기본 유형입니다. 이 차이는 컬렉션에 int 값을 저장하려고 할 때 큰 역할을합니다. jdk1.4까지 객체 만 값으로 허용하기 때문입니다. 오토 박싱 때문에 JDK5는 완전히 다른 이야기입니다.