1. 整数リテラル

ここで、新しい興味深いトピック、リテラルについて説明します。プログラム コード内に直接記述されたデータはリテラルと呼ばれます。ここで話しているのは古いデータではなく、プリミティブ型の値とString型です。

たとえば、次のコードがあるとします。

コード リテラル
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

このコードのリテラル、number 5、number、10および文字列 ' Sum = ' です。

Java では、リテラルを含むすべてのものに型があります。デフォルトでは、コード内のすべての整数リテラル (整数) は ですints。int 型は、標準の Java 整数型です。

さらに、コード内で整数リテラルをバイト変数または short 変数に割り当てる場合は、問題はありません。リテラル値が、変数の型が格納できる値の範囲内にあることを確認する必要があるだけです。

Java コンパイラは、byte問題を引き起こすことなく変数に整数リテラル 100 を割り当てることができることを理解できるほど賢いです。

例:

コード 説明
int a = 300;
これは問題なくコンパイルされます。
byte a = 100; 
これは問題なくコンパイルされます。
byte a = 300; 
最大バイト値は 127 であるため、コンパイル エラーが発生します。

longコード内にリテラルを記述することもできます。これを行うには、整数の末尾にラテン文字「L」または「l」を追加します。

例:

コード 説明
long a = 3000000000L; 
これは問題なくコンパイルされます。
long a = 3000000000; 
コンパイル エラー: 30 億は int リテラルには大きすぎます。
int a = 3000000000L; 
コンパイル エラー: リテラルはlongですが、変数はintです。さらに、30 億は最大 int を超えています。

10 桁以上の大きな数字を読むのがいかに難しいかに気づきましたか? コードに 30 億と書かれているのか、300 億と書かれているのかはすぐにはわかりません。コードを読みやすくするために (これは重要です!)、Java では数値リテラルにアンダースコアを挿入できます (数値の値には影響しません)。

上の例は、もう少しわかりやすくするためにアンダースコアを使用して書き直すことができます。

コード 説明
long a = 3_000_000_000L; 
これは問題なくコンパイルされます。
long a = 3_000_000_000; 
コンパイル エラー: 30 億は int リテラルには大きすぎます。
int a = 3_000_000_000L; 
コンパイル エラー: リテラルはlongですが、変数はintです。さらに、30 億は最大 int を超えています。

ただし、カンマはすでに別の目的で使用されているため、数値リテラルでカンマを使用することはできません。たとえば、メソッドを呼び出すときに引数を互いに分離する場合などです。



2. 実数リテラル

コードでは、整数だけでなく、浮動小数点リテラル (実数) も指定できます。

実際、ルールは非常に単純です。コード内の数値に小数点が含まれている場合、その数値は浮動小数点リテラルです。そして単なるリテラルではなく、doubleリテラルです。

float リテラルを作成できますが、そのためには数値の末尾に文字 'F' (または 'f') を置く必要があります

例:

コード 説明
double a = 100.0; 
これは問題なくコンパイルされます。
double a = 100.;
これは問題なくコンパイルされます。
double a = .0;
これは問題なくコンパイルされます。
float a = 100.0f; 
これは問題なくコンパイルされます。
float a = 100.0; 
コンパイル エラーが発生します。変数は float ですが、リテラルは double です。

ちなみに、単純に) だけで、整数リテラルを float または double リテラルに明示的に変換できます。例: appending the suffix 'F' (for float) or D (for double)

コード 説明
double a = 100D; 
これは問題なくコンパイルされます。
float a = 100F; 
これは問題なくコンパイルされます。
int a = 300D; 
コンパイル エラーが発生します。変数は int ですが、リテラルは ですdouble

浮動小数点リテラルでは科学表記法を使用できます。数値の符号付き部分に加えて、10 の累乗を指定することもできます。例:

リテラル 数学的表記法 最終値
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. 文字列リテラル

コード内でテキスト行全体を指定することもできます。文字列をコードの一部ではなくデータ (リテラル) として扱うようにコンパイラに指示するには、文字列全体の両側を二重引用符で囲みます。

コードの 1 行に複数の二重引用符がある場合、それらはペアに分割されます。最初の二重引用符はリテラルの始まりを示します。次の文字はリテラルの終わりを示します。その次の文字は、再び新しい文字通りの始まりを示します。そして next は 2 番目のリテラルの終わりを示します。等々。

このような各リテラルは ですString

コード 説明
"+" + "+" + "+" + "+" + "+"
1 行に 5 つのリテラルがあります。それぞれは単一の +文字で構成されています
""
このリテラルは空の文字列です。文字を含まない文字列。
"2+3" + "-5"
ここには 2 つのリテラルがあります。結果は2+3-5数値ではなく文字列「 」になります。
"return" + ";"
ここにはリテラルも 2 つあります。ここには return ステートメントはありません。

文字列リテラルが長すぎる場合は、複数の行に分割し、「プラス演算子」で結合することができます。

コード 説明
String s = "I hold it true, whate'er befall, "
         + "I feel it when I sorrow most; "
         + "'Tis better to have loved and lost "
         + "Than never to have loved at all.";
この行を画面に出力すると、すべてのテキストが 1 行に表示されます。


4. 文字リテラル

コードでは文字列リテラルだけでなく、個々の文字で構成されるリテラルも指定できます。ここでは単一の文字で構成される文字列について話しているのではなく、型が であるリテラルについて話していることに注意してくださいchar

文字列とは異なり、文字リテラルは一重引用符で囲まれます。一重引用符の内側には 1 つの文字を含める必要があります。空の一重引用符は使用できません。

例:

コード 説明
'A'
型が char であるリテラル。ラテン文字「A」が含まれています。
'@' 
型が char であるリテラル。「@」記号が含まれています
'' 
型が char であるリテラル。日本語の文字が入っています。そして、これも可能です。
'\u1f3a'
型が char であるリテラル。番号で指定された Unicode 文字が含まれています。

最後の例では、特殊な表記法を使用して Unicode 文字を割り当てます。最初に接頭辞 があり\u、その後に 4 つの 16 進文字が続きます。次のレッスンでは、これに関する詳細な情報が含まれます。