float ff = 1.2f;
Float fo = new Float(1.2f);
double fg = 3.2d;
Double fh = new Double(2.1d);
(1) と (3) の間、または (2) と (4) の間に「=」を使用できますか??
float ff = 1.2f;
Float fo = new Float(1.2f);
double fg = 3.2d;
Double fh = new Double(2.1d);
(1) と (3) の間、または (2) と (4) の間に「=」を使用できますか??
はい。
編集の質問への回答:
あなたが見るでしょう
ff = fg
。fo = fh
。fg = ff
正常に動作します(フロートはダブルに収まります)。fh = fo
それでも「互換性のないタイプ」が表示されます。はい、2はオブジェクトを作成します。
はい、1つ目はプリミティブ型で、2つ目はプリミティブfloat型の機能をラップするボクシングクラスです。たとえば、コレクションで使用するには2つ目が必要です。型変換(Java 1.5までだと思います)をたくさん扱う必要があった前は、ラッパークラスの存在がそれらの機能を利用するようになりました。詳しくは。ここ
はい。1つ目は、プリミティブ型の変数を宣言し、float
1.2に初期化します。
2番目は参照型の変数を宣言し、型Float
のオブジェクトを作成しFloat
てから、変数に参照を割り当てます。
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
ええ、プリミティブ型はNULLにすることはできませんが、オブジェクトはNULLにすることができます。また、Floatオブジェクトには、便利なユーティリティ関数が多数付属しています。
この宣言により、プリミティブ型 float があり、それに値が割り当てられます。プリミティブ型は、他のデータ型で構成されていないデータ型であり、さらに分割することはできません(簡単に説明すると)。プリミティブは一般に組み込み型です。
この場合、オブジェクトを作成しました。内部的には、より小さなデータ型で構成され、メソッドも含まれています。
プリミティブ型 float とオブジェクト型の主な違いは、プリミティブは単なるデータの形式であり、プロパティやメソッドがないことです。
3=1 は正常に動作しますが、残りは動作しません。
実際のアプリケーションでは、floatまたはFloatを使用しないことをお勧めします。これはあまり正確ではなく、ほとんど正しい解決策ではありません。代わりにdoubleまたはDoubleを使用してください。