🐈
Javaの型とかについてメモ
floatとdouble
floatとdouble、少数を扱うための型だがCPUは1と0では正確な数値を表現できないので誤差が生まれる。
floatは使用するメモリが32bit、doubleは64bitなので、floatの方が処理は早く、doubleの方が正確。
しかし近年はfloatを自動でdoubleに変換していたり環境によって処理速度が違うので、選定は一概に言えない処理依存。
データ型のサイズ
float < double < int
大きなデータ型に代入する場合は自動変換してくれるが、小さいデータ型に代入するのはコンパイルエラーになる。
castすれば違うデータ型に変換は可能だが、小さくいデータ型にキャストしようとすると小数点が切り捨てられたりする。
キャスト
キャストは挙動がわかりづらい。
float c1 = (float) 1.0; // 1.0
double c2 = 1; // 1.0
byte c3 = (byte) 128; //-128 (byteが扱えるのは、-128から127まで。)
int c4 = (int) 1.23; // 1
型別のデータ量
byte 8bit (1byte)
short 16bit (2byte)
int 32bit (4byte)
long 64bit (8byte)
float 32bit (4byte)
double 64bit (8byte)
char 16bit (2byte)
boolean 8bit (1byte)
配列
Javaの配列の書き方
String[] members = {"tanaka","yamada","hujimoto","suzuki"};
String member1 = member[0];
多次元配列の書き方
String[][] members = {
{"hirose", "yamamoto", "hukuda"},
{"sugimoto", "komatu", "kuroki"}
};
String member2 = members[0][1]
文字、文字列
charは1文字を数値で表したデータ型。
Stringはcharをまとめて扱うためのクラスで、参照型。文字列なのに参照型。
Discussion