JavaRush /Java Blog /Random-JA /Java のリテラル

Java のリテラル

Random-JA グループに公開済み
アプリケーションを作成する段階では、開発者は原則としてその構造のみを知り、どのようなデータを処理するのかを想定しません。ただし、状況によっては、プログラム コード内で一部のデータ (反復回数や出力するメッセージなど) を明示的に指定する必要があります。この場合、リテラルが役に立ちます。 コンテンツ:

リテラルとは何ですか?

リテラルとは、プログラム コード内で明示的に指定された値、つまり起動時にコード内にある特定の型の定数です。
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
このクラスでは「Hello world!」-文字通り。リテラルにはさまざまな種類があり、その目的と書き方によって決まります。

リテラルの種類とその用途

すべてのリテラルはプリミティブ値 (文字列、数値、文字、ブール値) です。リテラル オブジェクトを作成することはできません。オブジェクトに関連付けられた唯一のリテラルは ですnull。プリミティブに従って、リテラルもセクションに分割されます。
  1. 数値:
    • 整数;
    • 浮動小数点;
  2. 弦;
  3. キャラクター;
  4. 頭の体操。

数値リテラル

整数リテラル

このタイプのリテラルは最も単純です。数字は文字などを示さずに標準形式で書かれます。デフォルトでは、整数は整数リテラルになります。つまり、変数の値またはループ内の反復回数を明示的に設定できます。Java は 4 つの数値体系をサポートしています。
  • バイナリ
  • 8進数
  • 10進数
  • 16進数
JDK 7 では、バイナリ値を書き込む機能が導入されました。これは、接頭辞0bまたは0Bを使用して行われます。次に、0 と 1 を使用した書き込みです。8 進数の数値は先頭に 0 を使用して書き込みます。有効な数字は 0 ~ 7 です。09 または 08 を書き込むとコンパイル エラーが発生します。10 進数体系には問題はありません。数字は私たちが慣れ親しんだ形式で示されます。唯一の制限は、コンパイラーが数値を 8 進数として認識するため、数値を 0 で始めることができないことです。16 進数の数値は、接頭辞 0x および 0X を使用して書き込まれます。有効な数字は 0 ~ 15 で、数字 10 ~ 15 はそれぞれ AF 記号で示されます。
public static void main(String[] args) {
       int a = 0b1101010110;
       int b = 012314;
       int c = 456;
       int d = 0x141D12;
       System.out.println("Число a в двоичной системе: " + a);
       System.out.println("Число b в восьмеричной системе: " + b);
       System.out.println("Число c в десятичной системе: " + c);
       System.out.println("Число d в шестнадцатеричной системе: " + d);
}
出力: 2進法の数値a:854 8進法の数値b:5324 10進法の数値c:456 16進法の数値d:1318162 異なる数値体系で指定されているにも関わらず、プログラム上では10進数として処理されます。数字。値を超えるとコンパイル エラーが発生します。
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
コンパイル段階で実行すると、次の結果が得られます。

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
タイピングについてはどうですか?すべての整数リテラルのデフォルトの型は ですint。その値が割り当てられた変数の範囲外である場合、コンパイル エラーが発生します。型を使用する場合は、この型を示す long記号を末尾に付ける必要があります。L
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
コンパイルしようとすると、次のエラーが発生します。

Error(11, 26) java: integer number too large: 1101010110

浮動小数点リテラル

浮動小数点数、つまり小数は 2 つの方法で記述できます。 1 つ目は、古典的な小数として、3.14159 または 2.718281282459045 です。 2 番目は科学形式です。つまり、通常の小数に、記号 e または E の形式の接尾辞と、指定された分数を乗算する必要がある 10 の累乗を加えたものです。たとえば、4.05E-13 は 4.05 * 10 -13を意味します。
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
出力: 従来の double 型: 2.718281828459045 科学的 double 型: 4.05E-13 整数や数体系とは異なり、科学的表記法は変数に格納され、古典的な表記法と同じ方法で処理されます。タイピングについてはどうですか?任意の浮動小数点数が型を作成しますdouble。タイプを使用する必要がある場合は、最後にまたは をfloat追加する必要があります。この場合、type に縮小されます。これは自動的には起こりません。 fFdoublefloat
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
コンパイル段階から開始すると、次のエラーが表示されます。

Error:(11, 27) java: incompatible types: possible lossy conversion from double to float

文字列リテラル

文字列リテラルは、二重引用符で囲まれた一連の文字です。この型は、数値リテラルと同じくらい頻繁に使用されます。この行には、エスケープする必要があるサービス文字 (いわゆるエスケープ シーケンス) が含まれる場合もあります。例:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
出力: これは通常の文字列です。私たちと同じくらい標準的で、目立たないものです。そして、これは珍しい「ライン」です。その中の「単語」の一部が「引用符」で囲まれているという理由だけであれば。

文字リテラル

Java の文字リテラルは Unicode 文字セットで表されます。つまり、各文字は 16 ビット値です。コード内でシンボルを示すには、一重引用符で区切ります。経験に基づいて、シンボルには次の 2 種類があります。
  1. キーボードから入力できる文字は通常の文字です。
  2. キーボードから単純に入力できない記号(さまざまな言語や図形などの記号)。
通常の文字は明示的に指定できます: ' ,' または ' @'。文字がサービス文字 (改行やタブなど) の場合、そのような文字はバックスラッシュでエスケープする必要があります。コンソールから単純に入力できない文字も、16ビット形式で指定できます。\uこれを行うには、 「 」のように接頭辞を付けて文字コードを指定する必要があります\u00F7。「 」のように先頭にバックスラッシュを追加するだけで、8 進数スタイル (3 桁の数値) で文字を指定することもできます\122。私の意見では、 の方がずっと使いやすいです\u。使用例:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
出力: アンパサンド - & 除算記号 - ÷

ブールリテラル

最も単純なリテラルは論理リテラルです。false値はとの 2 つだけでtrue、さまざまな記号を使用せずに明示的に指定されます。このようなリテラルは、ブール型の変数に代入することも、ブール型が予期される場所 (たとえば、if ブロック内など) で指定することもできます。ただし、控えめに言っても、この方法はマナー違反と考えられています。
boolean flag = false;

if(true) {
    // Действия будут выполняться всегда.
}

リテラルを使用したジェダイのテクニック

Java のシンボルのおかげで、絵文字の管理など、多くの興味深いことができます。たとえば、笑顔を表示してみましょう。
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
結論: 笑顔: 😀 絵文字の表示は (実装によっては) 不気味になる可能性がありますが、このソリューションはうまく機能します。ただし、標準のエンコード テーブルで目的の絵文字を検索するのは難しく、公式 Web サイトの絵文字セクションはまばらです。追加のライブラリを使用する方がはるかに簡単です。

JavaRush コースのリテラル

JavaRush コースでは、Java 構文コースの講義 8 のレベル 10でリテラルを学習します。ここでは、リテラルとは何か、およびリテラルが必要な理由を例で説明します。JavaRush は実践に重点を置いた Java プログラミングのオンライン コースです。即時検証を伴う 1200 以上のタスク、ミニプロジェクト、ゲームが含まれます。

結論

Java のリテラルはどのプログラムでも便利ですが、適切な場所で使用する必要があります。データベース接続パラメータや、プログラムのライフサイクル中に変更される可能性のある値をソース コードにハードコーディングしないでください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION