3
  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) の間に「=」を使用できますか??

4

8 に答える 8

21

はい。

  1. 「float」と呼ばれる単純な古いデータ型(別名、プリミティブ型)を作成します。
  2. (1)と同じ値を保持するFloatというJavaオブジェクトを作成します。

編集の質問への回答:

あなたが見るでしょう

  1. 試してみると、「精度が低下する可能性があります」というメッセージが表示されますff = fg
  2. 試してみると「互換性のないタイプ」fo = fh
  3. fg = ff正常に動作します(フロートはダブルに収まります)。
  4. fh = foそれでも「互換性のないタイプ」が表示されます。
于 2009-06-17T18:41:07.533 に答える
7

はい、2はオブジェクトを作成します。

于 2009-06-17T18:40:29.547 に答える
7

はい、1つ目はプリミティブ型で、2つ目はプリミティブfloat型の機能をラップするボクシングクラスです。たとえば、コレクションで使用するには2つ目が必要です。型変換(Java 1.5までだと思います)をたくさん扱う必要があった前は、ラッパークラスの存在がそれらの機能を利用するようになりました。詳しくは。ここ

于 2009-06-17T18:41:26.240 に答える
3

はい。1つ目は、プリミティブ型の変数を宣言し、float1.2に初期化します。

2番目は参照型の変数を宣言し、型Floatのオブジェクトを作成しFloatてから、変数に参照を割り当てます。

于 2009-06-17T18:40:59.827 に答える
2

new Float(1.2f) は毎回新しいFloat オブジェクトを作成し、メモリを消費します。

ファクトリ メソッドFloat.valueOf(1.2f)を使用する場合、JVM は同じ値に対して既存の Float オブジェクト インスタンスを再利用する場合があります。同じ値を持つ Float インスタンスがまだない場合にのみ、新しいオブジェクト インスタンスを作成できます。

通常、new 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
于 2009-06-17T18:58:01.297 に答える
1

ええ、プリミティブ型はNULLにすることはできませんが、オブジェクトはNULLにすることができます。また、Floatオブジェクトには、便利なユーティリティ関数が多数付属しています。

于 2009-06-17T18:41:49.687 に答える
1
  1. この宣言により、プリミティブ型 float があり、それに値が割り当てられます。プリミティブ型は、他のデータ型で構成されていないデータ型であり、さらに分割することはできません(簡単に説明すると)。プリミティブは一般に組み込み型です。

  2. この場合、オブジェクトを作成しました。内部的には、より小さなデータ型で構成され、メソッドも含まれています。

プリミティブ型 float とオブジェクト型の主な違いは、プリミティブは単なるデータの形式であり、プロパティやメソッドがないことです。

3=1 は正常に動作しますが、残りは動作しません。

于 2012-12-11T17:20:43.050 に答える
0

実際のアプリケーションでは、floatまたはFloatを使用しないことをお勧めします。これはあまり正確ではなく、ほとんど正しい解決策ではありません。代わりにdoubleまたはDoubleを使用してください。

于 2009-06-17T20:22:41.057 に答える