🐈

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