型変換と昇格
メニューを表示するにはスワイプしてください
Javaが型変換をどのように扱うかを理解することは、安全で予測可能なコードを書くために不可欠です。Javaはプリミティブ型間の型変換として、暗黙的変換(wideningとも呼ばれる)と明示的変換(narrowingとも呼ばれる)の2つの主要な形式をサポートしています。暗黙的変換は、小さいデータ型の値を大きいデータ型に代入する際に自動的に行われます。例えば、intをdoubleに代入する場合などです。明示的変換は、通常データ損失のリスクがあるため、値を手動でキャストする必要があります。例えば、doubleをintに変換したり、intをbyteに変換したりする場合です。
小さい型から大きい型に値を代入する場合、Javaは自動的に変換を行います。これは、大きい型が小さい型のすべての値を表現できるため安全です。intをdoubleに代入しても情報が失われることはありません。すべてのint値はdouble値として表現できるためです。これを**拡大変換(widening conversion)**と呼びます。
大きい型から小さい型に値を代入する場合、Javaは明示的なキャストを要求します。これは、小さい型が大きい型のすべての値を表現できない可能性があり、データ損失や予期しない結果につながるためです。doubleをintにキャストすると小数部分が切り捨てられ、intをbyteにキャストすると値がbyteの範囲外の場合に値が巻き戻ることがあります。このプロセスは**縮小変換(narrowing conversion)**と呼ばれます。
Main.java
1234567891011121314151617package com.example; public class Main { public static void main(String[] args) { int i = 150; double d = i; // Implicit widening conversion: int to double System.out.println("int to double: " + d); // 150.0 double d2 = 123.456; int i2 = (int) d2; // Explicit narrowing conversion: double to int System.out.println("double to int: " + i2); // 123 int i3 = 300; byte b = (byte) i3; // Explicit narrowing conversion: int to byte System.out.println("int to byte: " + b); // 44 (data loss due to overflow) } }
1. 次のうち、Javaで暗黙的に行われるプリミティブ型の変換はどれですか?
2. Javaで9.99(double型)をint型にキャストした場合の結果は何ですか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください