初めに
後輩から、「新卒の方からこういう質問をされたのですが、
そういえばなんでですか」という質問をされたので、
自分で調べなといいつつ自分でも調べてみたのでまとめました。
答え
Javaでは数値を扱う際には、デフォルトでint型となっているため、
long型として扱うには明示的にlongであることを示す必要があるから
(数値リテラルの整数の値はint型として扱う)
追記
予想通りでした。
ただこれだけだとあれなので、ほかに気になったことを追記します。
他の整数型は?
byteやshortに関しては、数値のみでOK
ただし範囲を超えたら当然のごとくコンパイルエラー
byteはわかるが、shortにsがつかない理由は謎
(short自体あまり見ないが。。。)
小数型のデフォルトは?
小数型のデフォルトはdouble型となっている。
小数型の語尾は?
float型を扱う際には明示的にFをつける必要がある。
double型を扱う際にはDをつけることができる(つけなくてもいいし、見たことはない)
他の言語は
Scala
javaと同じ
Python
2.5まではJavaのようにlong型の場合にはlかLをつける必要があったが、
以降は、統合され必要はなくなった模様
C
符号あり整数のlong型を扱う際にはlもしくはLをつける
符号なし整数のlong型を扱う際にはulもしくはULをつける
C++
符号あり整数のlong型を扱う際にはllもしくはLLをつける
符号なし整数のlong型を扱う際にはullもしくはULLをつける
C#
符号あり整数のlong型を扱う際にはlもしくはLをつける
符号なし整数のlong型を扱う際にはulもしくはULをつける