' P '

whatever I will forget

Java Primitive Types Tips

int, byte, short, long

  • Javaのデフォルトはint
  • 時にbyteshortが使いたいとき、もしくはintで扱える最大〜最小値を越える場合、Javaは自動的にintを使用するのでcastを行わないといけない場合がある
  • intは32bits(4bytes)、byteは8bits(1byte)、shortは16bits(2bytes), longは64bits(8bytes)
  • longを使う時は long l_value = 10000L とLongですよと明示的に示すやり方が好きな人もいる
  • また、引数代入時にint i_value = 100_000_000のようにアンダースコアを使用することもできる
  • 結論、基本的にintを使用すればよい

float, double

  • Javaのデフォルトはdouble 理由は少数以下の表示がfloatよりも正確だから。あとはjavaのライブラリ関数などもdoubleを使用しているので
  • 上記理由からあえてfloatを使う場合はcastが必要になる場合あり
  • floatの精度は7桁、doubleは16桁
  • doubleやfloatを使う時は 100.00f101.00d とfloat, doubleですよと明示的に示すやり方が好きな人もいる
  • floatやdoubleもアンダースコア表記ができる
  • 結論、こちらも基本的にdoubleを使用すればよい

  • よく忘れるけどintで割り切れない場合の値は切り捨てです。

ちなみに、各primitive typeの最大値や最小値を知りたい場合は

int max_value = Int.MAX_VALUE;
int min_value = Int.MIN_VALUE;

それぞれをsoutすればよい。

IntのlongのMAX値 追記5/25

Intの場合

-2147483648 to 2147483647です。(もしかしたら環境で変わるのかもだけど)
約2 * 109と覚えておきましょ

追記11/11

B - Various distances
で詰んだ... intは9桁までしか表現できないので、5桁*5桁の積は表現できません。これをlongに代入していたとしても、
オーバーフローした値がlongに代入されるので、無意味です。
intは9桁まで!!!!!

longの場合

-9223372036854775807 to 9223372036854775807です。
19桁となります。

char

  • Javaではまあそうそうcharは使わないような。一文字しか格納できない。''で一文字を囲む。
  • unicodeの番号をそのまま打ち込むこともできる。 char uni = '¥0044'とすればDが格納される

String

なぜJavaではStringだけが大文字で宣言されてるの?って素朴な疑問なんですけど
基本的にはStringはprimitive typeには分類されず、classらしい。
でもまあほぼprimitive typeみたいに使えるよって話です。
Stringにももちろんunicode番号を使う子もできる。