🌊
【Java Sliver勉強】識別子とデータ型について
いつもあるの識別子のルール
- あたまもじは数字を使う事はできません
- 使える記号は
$と_のみ - すでに Java が使ってる予約語が使えない
- 大文字小文字が区別しています
- 長さの制限がないみたい
データタイプによっての初期化値
| データタイプ | 初期化の値 |
|---|---|
| byte | 0 |
| char | '\u0000' |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| boolean | false |
| Object | null |
タイプの間の格納関係
ルールはサイズが大きいタイプは基本的にサイズが小さいタイプが直接格納できる
例外もあるんですけど大体はこのようです
| ------- | byte | char | short | int | long | float | double | boolean | Object | String |
|---|---|---|---|---|---|---|---|---|---|---|
| byte | ◯ | CAST | CAST | CAST | CAST | CAST | CAST | ✗ | ✗ | String.valueOf |
| char | ◯ | ◯ | CAST | CAST | CAST | CAST | CAST | ✗ | ✗ | String.valueOf |
| short | ◯ | ◯ | ◯ | CAST | CAST | CAST | CAST | ✗ | ✗ | String.valueOf |
| int | ◯ | ◯ | ◯ | ◯ | CAST | CAST | CAST | ✗ | ✗ | String.valueOf |
| long | ◯ | ◯ | ◯ | ◯ | ◯ | CAST | CAST | ✗ | ✗ | String.valueOf |
| float | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | CAST | ✗ | ✗ | String.valueOf |
| double | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ✗ | ✗ | String.valueOf |
| boolean | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ◯ | ✗ | String.valueOf |
| Object | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | String.valueOf |
| String | String.valueOf | String.valueOf | String.valueOf | String.valueOf | String.valueOf | String.valueOf | String.valueOf | String.valueOf | String.valueOf | ◯ |
- ぢなみに
float f = 0.4;これではコンパイラーに Type mismatch: cannot convert from double to float って叱られた。 - Object は CAST 可能ですが、
char c = (char) new Object();ということをしたらjava.lang.ClassCastE✗ceptionになります。これはコンパイラーエラーではありません。
違うタイプの ➕ 足し算について
- 足し算の項が String がある場合、結果は String です
- 項は int しかないの場合は、結果が int です
1 + 2 + '3' -> (1+2) + '3'(charだからASCIIに変換->51) つまり 1 + 2 + '3' = (int) 54 です - タイプが小さいとタイプが大きいの足し算、結果のタイプは大きいの方です。
そのほかの注意するべきポイント
- char は負数がない
- ほかの数字表示タイプは全員負数が持っています
Discussion