タイプの変換(Java)

7564 ワード

タイプの変換Javaは強いタイプのプログラミング言語であり、異なるタイプの変数間で互いに値を割り当てると、厳格な検証が発生します.1.intとlong/doubleの相互割り当て:
int a=20;
long b=12;
a=b;//    ,     
b=a;//    

int a=10;
double b=1.2;
b=a;//    
a=b;//    ,     

異なるタイプ間の付与値をまとめると、範囲の小さいタイプは範囲の大きいタイプに変換でき、逆に変換できない(intはlongに付与でき、longはintに付与できない)2.intとbooleanは互いに変換できる
int a=12;
boolean b=false;
b=a;//    ,   
a=b;//    ,   

まとめintとbooleanは互いに変換できない3.int字面値定数byteに値を与える
byte a=100;//    
byte a=129;//    ,

結論int字面値定数byteに付与する場合、定数がbyteのデータ範囲内であるかどうかをチェックし(-128~127)、範囲外ではコンパイルエラー(129)、範囲内ではコンパイルパス(100)となる.4.強制型変換
int a=3;
double b=2.3;
a=(int)b;//    

int a=2;
bollean b=false;
a=(int)b;

結論:強制タイプ変換を使用する過程で、例えばdouble longなどintに関連するタイプをintに変換することができるが、精度が失われることがある.例えばb=2.3強制タイプを2に変換するが、互いに関係のないタイプ間では変換できない.数値は1.intとLongの混合演算を向上させる
int a=2;
long b=3;
int c=a+b;//    ,      
long c=a+b;//    

結論:前のintとlongの相互変換と同様に、int型に変換する必要がある場合は、強制型変換を使用することができる.2.byteとbyteの演算
byte a=3;
byte b=4;
byte c=a+b;
System.out.println(c);//    

byte a=3;
byte b=4;
byte c=(byte)(a+b);
System.out.println(c);

結論:byteとbyteは同じタイプですが、コンパイルエラーが表示されます.byteとbyteの演算では、まずintタイプに変換され、結果はintで、byteに変換すると損失が発生する可能性があるため、変換には強制タイプ変換が必要です.intとString間の相互変換
//int   String
int num=10;
String str1=num+"";//  1
String str2=String.valueof(num);
//String   int
String str="100";
int num=Integer.paraseInt(str);