ホームページ  >  記事  >  Java  >  Javaでの型変換

Javaでの型変換

PHPz
PHPzオリジナル
2024-08-30 15:12:18691ブラウズ

さまざまな型の変数と定数を式内にまとめたら、それらを同様の型に変更できます。単一の事前定義された型を別の型に変換するこの手法は、Java では型変換として知られています。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

型変換

プログラミング言語で使用される変換には 2 つの異なるタイプがあります。

Javaでの型変換

1.暗黙的な型変換

型変換がプログラマの介入なしにコンパイラーを通じて即座に実行される場合、その型変換は暗黙的な型変換と呼ばれます。コンパイラは基本的に、すべてのオペランドを最大のオペランドのデータ型に合わせて実行することを推奨します。データ変換中にデータの損失は発生しません。変換中に例外がスローされる可能性がないため、タイプセーフとして知られています。小さいサイズの量の変換が大きすぎると、暗黙的な変換になる可能性があります。整数型データを float に変換します。

float i=0;
int j=10;
i=j;

// float は整数よりも大きい可能性があるため、これは暗黙的な変換である可能性があり、したがってデータの不足はなく、また例外もありません。

2.明示的な型変換

プログラマを通じて強制できる型変換は、明示的な型変換として知られています。基本的に、プログラマは特定の型になるように式を作成します。明示的な型変換は、型キャストとして知られています。データの損失は、データ変換中に発生する場合と発生しない場合があります。したがって、詳細が失われる可能性があります。型キャストせずに実行しようとすると、エラーがスローされる可能性があります。より大きな数値からより小さなサイズの数値への変換は、明示的な変換である可能性があります。

float k=123.456
int i= (int) k

// これは、(int) が型キャストである演算子と同様に、明示的な変換である可能性があります。この時点では、なんとか例外を回避できるかもしれませんが、目に見えるデータの損失が見られることがわかります。つまり、i=123

// .456 は変換プロセスで削除できます

Java での型変換

他のプログラミング言語と同様、Java には 2 種類の変換があります。

暗黙的な型変換

  • これらは一般に拡張変換と呼ばれるもので、より幅広いデータ型に移行しているため、これらは自動的に実行できます。したがって、32 ビット整数があり、それを 64 ビット整数に移行したい場合は、より幅が広くなります。したがって、値を安全に移動できるため、暗黙的に実行できます。コンパイラはこれらの変換を行う方法を決定する必要があり、ルールは非常に簡単です。
  • 複数の (混合) 整数サイズを含む式がある場合、short とlong がある場合、最大の整数サイズが何であれ、変換されます。したがって、short と long を使用して操作を実行すると、short は暗黙的に along にキャストされます。
  • 浮動小数点サイズが混在して演算を実行し、float と double が存在する場合、double が最大の浮動小数点サイズであるため、常に double になります。
  • そして、整数型と浮動小数点型を混合して使用する演算がある場合、コンパイラーは方程式内の最大の浮動小数点にキャストします。したがって、ロングとフロートを使用して操作を実行すると、ロングは浮くようにキャストされます。
  • long と double を使用して操作を実行すると、long は double にキャストされます。

明示的な型変換

  • このキャスト操作を使用するときは、コード内で明示的に実行します。そうするとき、私たちはその種の変換の結果として何が起こっても責任を負います。そのため、拡大変換と縮小変換の両方を実行できます。 32 ビットから 64 ビットに広がり、64 ビットから 32 ビットに下がるにつれて狭くなります。私たちは、潜在的に何が起こるかを知っているということだけを認識しておきたいのです。
  • 浮動小数点から整数への明示的なキャストを行うと、浮動小数点には小数部分を持つことができますが、整数にはそれができないため、浮動小数点を整数にキャストすると小数部分は削除されます。
  • 絞り込み変換を実行するときは注意が必要です。 64 ビット整数がある場合、32 ビット整数に収まらないほど大きすぎる値を保持することができます。
  • その 64 ビットを 32 ビットにキャストすると、プログラムは実際にそれを実行しますが、値が大きすぎて 32 ビットに収まらない場合は、奇妙な結果が得られます。したがって、ナローイングキャストをしながらキャストするときは、自分がやっていることが安全であることを確認する必要があります。
  • 最後の項目は、整数から浮動小数点に変換するときに注意してください。有効桁数が多い整数がある場合、浮動小数点の格納方法により、次のようなことが起こる可能性があります。これらの有効数字の一部が失われます。

型変換の例

型変換の例については、以下で詳しく説明します:

コード:

Javaでの型変換

ここには単純なプログラムがあり、先頭に float、double、byte、short、long の宣言があり、変数には、float が floatVal のように、その型を識別しやすいように名前が付けられています。

コード:

Javaでの型変換

長いのは長いValです

コード:

Javaでの型変換

プログラムが実行されると、成功メッセージが出力されるだけです。

Javaでの型変換

それでは、ここで型変換の一部がどのように機能するかを見てみましょう。それでは、まず変数を作成してみましょう。ショートがあるので、それを結果と呼びます。

実際に、これを result1 と呼びましょう。そして簡単な課題をやってみましょう。したがって、まず byteVal をそれに割り当てます。さて、予想どおり、これを実行すると、正常に実行されます。

コード:

Javaでの型変換

出力:

Javaでの型変換

これは拡張変換であるため、バイトを short に割り当てることができるため、これが有効な割り当てであることがわかります。

ただし、この byteVal を代わりに longVal にすると、実際には Long になります。これを実行すると、互換性のないタイプ、ロングからショートへの変換が失われる可能性があるというエラー メッセージが表示されます。

コード:

Javaでの型変換

Javaでの型変換

ここでできることは、明示的なキャストを行うことです。この前にショートを入れておきます。これで有効になったので、実行できます。

コード:

Javaでの型変換

そしてもちろん、それはうまくいきます。それはナローコンバージョンだったため、ロングがショートに入ることができなかったからです。

出力:

Javaでの型変換

しかし、明示的なキャストを前に置くことで、有効になります。必要に応じて、非常に明示的にキャスト表記を使用して、バイト変換が正当であることはわかっていますが、そこにショート キャストを入れることでキャストしていることを明示的に示したいと言うことができます。それは完全に合法です。

コード:

Javaでの型変換

出力:

Javaでの型変換

それでは、別のシナリオを見てみましょう。 result2, という別の変数を作成します。result2 も同様に short です。ここでやりたいことは、byteVal を取得して、longVal を減算することです。これで、式の結果はその中の最大の整数のサイズ、つまり長さになるため、これは合法ではないことが分かりました。

コード:

Javaでの型変換

したがって、これを実行すると、ロングからショートへの変換が無効であるというエラーが表示されます。

Javaでの型変換

しかし、結果を短くして先に進みたいとします。キャストをする必要があります。ただし、ここではこの時間を結果全体の値としてキャストしたいと考えています。そこで、ここでその前にショートキャストを配置します。

ここの前にショートキャストを置きます。そして全体を括弧で囲みます。そして実行してください。

コード:

Javaでの型変換

正常に実行されます。

出力:

Javaでの型変換

ここで、result3 という別の変数を宣言しますが、これは long として宣言します。結果 3 が得られました。ここで行うことは、longVal – floatVal を割り当てることです。そこでそれを実行すると、整数型と浮動小数点型がある場合は常に、結果が浮動小数点型になるため、float から long への変換時にエラーが発生します。

コード:

Javaでの型変換

Javaでの型変換

それでは、結果を float に変換しましょう。したがって、これをフロートにすることで、先に進んで実行できるはずです。そして正常に実行されます。

コード:

Javaでの型変換

出力:

Javaでの型変換

しかし、ここで floatVal を取得し、これを doubleVal に変換し、これを実行しようとすると、エラーが発生します。整数を実行すると結果が double になるためです。浮動小数点は、方程式内の最大の浮動小数点のサイズです。

コード:

Javaでの型変換

Javaでの型変換

それでは、この結果を倍にして実行しましょう。

コード:

Javaでの型変換

出力:

Javaでの型変換

結論

1. Java では変数は厳密に型指定されます
2. プリミティブ型

  • 整数型、浮動小数点型、char型、Boolean型

3.型変換

  • プログラムが複雑になるにつれて、複数のデータ型が関与する可能性が高くなるため、異なる型の間を移動する必要があることがよくあります。
  • コンパイラーは、ある型からより大きな値を保持できる別の型に移行する、範囲が広がる型変換を処理できます。
  • ただし、キャストを使用して、コンパイラーが自動的に実行できないタイプの変換を明示的に実行することもできます。

以上がJavaでの型変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。