문제

  1. float ff = 1.2f;
  2. Float fo = new Float(1.2f);
  3. double fg = 3.2d;
  4. Double fh = new Double(2.1d);

(1)과 (3) 사이 또는 (2)와 (4) 사이에 '='를 사용할 수 있습니까?

도움이 되었습니까?

해결책

예.

  1. "float"라는 일반 기존 데이터 유형 (일명 원시 유형)을 만듭니다.
  2. (1)과 동일하게 발생하는 그 값을 보유하는 float라는 Java 객체를 만듭니다.

편집 질문에 응답 :

당신은 볼 것입니다

  1. "정밀도 손실"메시지를 시도하는 경우 ff = fg.
  2. 시도하면 "호환되지 않는 유형" fo = fh.
  3. fg = ff 잘 작동합니다 (플로트는 두 배로 맞습니다).
  4. fh = fo 여전히 "호환되지 않는 유형"을 줄 것입니다.

다른 팁

예, 2는 객체를 만듭니다.

예, 첫 번째는 원시 유형이고 두 번째는 원시 플로트 유형의 기능을 감싸는 권투 클래스입니다. 예를 들어 컬렉션에 사용하려면 두 번째가 필요합니다. 유형 변환을 많이 다루기 전에 (Java 1.5까지 생각합니다) 이제 랩퍼 클래스의 존재는 이러한 기능을 취합니다. 추가 정보. 여기

예. 첫 번째는 원시 유형의 변수를 선언합니다 float 1.2로 초기화합니다.

두 번째는 참조 유형의 변수를 선언하지만 Float, 유형의 객체를 만듭니다 Float 그런 다음 변수에 대한 참조를 할당합니다.

New Float (1.2f)는 a 새로운 메모리를 소비하는 매번 물체를 떠 다니십시오.

공장 방법을 사용하는 경우 float.valueof (1.2f) JVM은 기존 플로트 오브젝트 인스턴스를 동일한 값으로 재사용 할 수 있습니다. 값이 동일한 플로트 인스턴스가없는 경우에만 새 개체 인스턴스를 만들 수 있습니다.

일반적으로 새 float (1.2f) 대신 float.Valueof (1.2f)를 사용하려고합니다.

또한 원시와 객체는 동등한 연산자와 다르게 작동합니다. ==.

float x1 = 1.2f;
float x2 = 1.2f;

x1 == x2  // true

Float f1 = new Float(1.2f);
Float f2 = new Float(1.2f);

f1 == f2 // false

예, 원시 유형은 무효가 될 수 없습니다. 물체는 할 수 있습니다. 또한 플로트 객체에는 유용한 유틸리티 기능이 첨부되어 있습니다.

  1. 이 선언을 사용하면 원시 유형 플로트가 있고 값을 할당했습니다. Primitive 유형은 다른 데이터 유형으로 구성된 데이터 유형이며 분리 할 수는 없습니다 (간단히 설명하기 위해). 원시는 일반적으로 내장 유형입니다.

  2. 이 경우 객체를 생성했으며 내부적으로는 더 작은 데이터 유형으로 구성되며 메소드도 포함되어 있습니다.

원시 유형 플로트와 객체 유형의 주요 차이점은 원시는 단순히 데이터의 형식이며 속성이나 방법이 없습니다.

3 = 1은 잘 작동하며 휴식은 그렇지 않습니다.

실제 응용 프로그램에서는 플로트 나 플로트를 사용하지 않는 것이 좋습니다. 정확하지 않으며 올바른 솔루션은 거의 없으며 대신 더블 또는 더블을 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top