Javaの型には大きく分けるとプリミティブ型 (基本データ型) と参照型の2つのカテゴリーのデータ型をサポートしています。
ここではプリミティブ型 (基本データ型) について説明します。
nullは参照型でありながら参照してない場合に使うものです。従ってプリミティブの型には代入できないです。Silver対策
プリミティブ型
プリミティブ型はメモリ上に直接格納される基本的なデータです。Javaには以下の8つのプリミティブ型があります。
byte
– 整数を8ビットで表現し、範囲は-128から127までです。short
– 整数を16ビットで表現し、範囲は-32,768から32,767までです。int
– 整数を32ビットで表現し、範囲は-2^31から2^31-1までです。これは、Javaで最も一般的に使用される整数型です。long
– 整数を64ビットで表現し、範囲は-2^63から2^63-1までです。float
– 浮動小数点数を32ビットで表現します。この型は約7桁の精度を持っています。double
– 浮動小数点数を64ビットで表現します。この型は約15桁の精度を持っています。これは、Javaで最も一般的に使用される浮動小数点型です。char
– Unicode文字を16ビットで表現します。boolean
– 真または偽の値を表すために使用され、true
またはfalse
の値を持つことができます。
long型とfloat型は接尾辞L(l)やF(f)が付くのがポイントです。
- long型:100L
- float型:3.0F
整数リテラルの2進数8進数16進数
2進数は先頭に0b, 8進数には0, 16進数は0xが付きます。
System.out.println(0_234); // 156と表示
int型で8進数表現意外に、09などの0を先頭に付けた数値を使用するとコンパイルエラーになります。Silver対策
整数リテラルのアンダースコア
数値リテラルにはアンダースコアをカンマ代わりに付けることができます。
ただし、以下の注意点があります。
- アンダースコアはリテラルの先頭と末尾にはつけられない
- アンダースコアは記号の前後には付けられない。これはfloatのFやlongのLも同様、2進数の0bや16進数の0xなども含まれる 。次の内容は全てエラーになります。
_0b100, 0_b100, 0b_100, 0b100_
Silver対策
char型
文字と文字列の違いを認識しておきましょう。char型は文字リテラルを表す型です。つまり1文字を表します。アルファベット、全角文字、記号、1部の数値など1文字だけを表します。
シングルクォテーションで囲むのが特徴。0から65535までの数値も使えますが、本質的に文字コードを表しています。¥uが接頭辞としてつく場合はunicodeを表します。
- char型はシングルクオテーションで1文字だけ
- 数値の場合は0から65535までOK(16進数4桁表示で文字を表現できるため)
- char型をString型にキャストするには、String.valueOf()を使用します。
変数
Javaの変数名を選ぶ際には、いくつかのポイントやベストプラクティスを考慮すると良いです。
- 先頭文字に数値を使用することはできません。
- 意味がわかる名前: 変数名はその目的や使用法を表すものであるべきです。例えば、
temperature
やspeed
などの名前は、何を表しているのか明確です。 - キャメルケース: Javaでは通常、変数名にはlowerCamelCaseが使われます。これは最初の単語が小文字で始まり、次の単語の先頭文字が大文字になる形式です。例:
maximumHeight
。 - 略語の使用を避ける: 変数名には略語を使わないほうが良いです。全てを略さずに書くことで、コードの可読性が向上します。
- 短すぎないが長すぎない: 変数名は短すぎると意味が不明確になり、長すぎるとコードが読みにくくなることがあります。適切な長さを心がけましょう。
- 慣習を守る: 特定の目的のための標準的な名前付け規則を守ると、他のJavaプログラマとのコードの共有が容易になります。例えば、ループカウンタは通常
i
やj
と名付けられます。 - 予約語を避ける: Javaの予約語やキーワード(
int
,class
,public
など)は変数名として使うことができません。 - 変数の型を示す: 変数名に型を示すプレフィックスを付けることがありますが、これは必ずしも必要ではありません。明確で簡潔な変数名の方が好まれます。
- 定数の命名: 定数(
final
変数)は通常、全て大文字のスネークケース(単語をアンダースコアで区切る)で名付けられます。例:MAX_SPEED
。 - 変数のスコープ: ローカル変数は短くても良いですが、クラスのメンバ変数やグローバル変数は、より説明的で意味がわかりやすい名前を持つべきです。
- コーディング規約に従う: あなたが参加しているプロジェクトやチームには、コーディング規約やスタイルガイドがあるかもしれません。それらに従って変数名を付けることが重要です。
varの使い方
変数宣言にvarを使用するには型類推できないといけません。
データ型が不明なため、型をjavaに推論させる目的のもの。そのため必ず初期化が必要
つまり=の右辺の値から変数の値を推論してそのデータ型に置き換える機能
var a = 10
- varを使う変数を初期化する必要がある
- nullは型が不明なため使えない
- 値にラムダ式は使えない
- 配列の初期化式を値にできない var a = {1,2,3};
- varはローカル変数しか使えない。フィールドでは使用不可 Silver対策
- var は引数の型宣言で使えない
- ジェネリクスのダイヤモンド演算子に対しても使えます。
varは、変数の型をコンパイラに推論させるためのキーワードです。そのため、変数がどのような型を持つかを明示的に指定する必要がなくなります。ただし、この機能をインスタンス化で使用する場合、変数の型が不明確になり、ポリモフィズムが正しく機能しない可能性があります