JavaRush /Blog Java /Random-MS /Literal di Jawa

Literal di Jawa

Diterbitkan dalam kumpulan
Pada peringkat membuat aplikasi, pembangun, sebagai peraturan, hanya mengetahui strukturnya dan tidak menganggap data apa yang akan diproses. Walau bagaimanapun, dalam beberapa situasi, anda perlu menyatakan secara eksplisit beberapa data dalam kod program (contohnya, bilangan lelaran atau mesej yang akan dikeluarkan). Dalam kes ini, literal datang untuk menyelamatkan. Kandungan:

Apakah literal?

Literal adalah nilai yang dinyatakan secara eksplisit dalam kod program - pemalar jenis tertentu yang terdapat dalam kod pada masa pelancaran.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
Dalam kelas ini "Hello dunia!" - literal. Literal datang dalam pelbagai jenis, ditentukan oleh tujuan dan cara ia ditulis.

Jenis huruf dan kegunaannya

Semua literal adalah nilai primitif (rentetan, nombor, aksara, boolean). Anda tidak boleh mencipta objek literal. Satu-satunya literal yang dikaitkan dengan objek ialah null. Menurut primitif, literal juga dibahagikan kepada bahagian:
  1. angka:
    • Nombor bulat;
    • Titik terapung;
  2. Tali;
  3. Perwatakan;
  4. Pengusik otak.

Huruf angka

Integer literal

Jenis literal ini adalah yang paling mudah. Nombor ditulis dalam bentuk piawainya tanpa menunjukkan aksara atau apa-apa lagi. Sebarang integer ialah integer literal secara lalai. Iaitu, anda boleh menetapkan secara eksplisit nilai pembolehubah atau bilangan lelaran dalam gelung. Java menyokong 4 sistem nombor:
  • binari
  • Oktal
  • perpuluhan
  • Heksadesimal
JDK 7 memperkenalkan keupayaan untuk menulis nilai binari . Ini dilakukan menggunakan awalan 0b atau 0B . Seterusnya menulis menggunakan 0 dan 1. Nombor dalam oktal ditulis menggunakan pendahuluan 0. Digit yang sah ialah 0 hingga 7. Penulisan 09 atau 08 akan menyebabkan ralat penyusunan. Tiada masalah dengan sistem nombor perpuluhan : nombor ditunjukkan dalam bentuk yang kita kenali. Satu-satunya had ialah nombor itu tidak boleh bermula dengan 0, kerana pengkompil akan menganggapnya sebagai oktal. Nombor dalam perenambelasan ditulis menggunakan awalan 0x dan 0X. Nombor yang sah adalah dari 0 hingga 15, di mana nombor 10-15 ditunjukkan oleh simbol AF masing-masing.
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);
}
Output: Nombor a dalam sistem binari: 854 Nombor b dalam sistem perlapanan: 5324 Nombor c dalam sistem perpuluhan: 456 Nombor d dalam sistem perenambelasan: 1318162 Walaupun nombor dinyatakan dalam sistem nombor yang berbeza, dalam atur cara ia diproses sebagai perpuluhan nombor. Melebihi nilai akan mengakibatkan ralat penyusunan:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
Apabila dijalankan pada peringkat penyusunan, kami mendapat hasil berikut:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
Bagaimana dengan menaip? Sebarang literal integer mempunyai jenis lalai int. Jika nilainya berada di luar sempadan pembolehubah yang ditetapkan, ralat kompilasi berlaku. Apabila menggunakan jenis, longanda mesti meletakkan simbol di hujung Lyang menunjukkan jenis ini:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
Cuba untuk menyusun keputusan dalam ralat berikut:

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

Literal titik terapung

Nombor titik terapung, atau nombor pecahan, boleh ditulis dalam dua cara. Yang pertama adalah sebagai pecahan perpuluhan klasik: 3.14159 atau 2.718281282459045. Yang kedua adalah dalam bentuk saintifik, iaitu pecahan perpuluhan biasa ditambah dengan akhiran dalam bentuk simbol e atau E dan kuasa 10 yang mana pecahan yang ditentukan mesti didarab. Contohnya, 4.05E-13, ini bermakna 4.05 * 10 -13 .
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
Output: Jenis dwi klasik: 2.718281828459045 Jenis dwi saintifik: 4.05E-13 Tidak seperti integer dan sistem nombor, notasi saintifik disimpan dalam pembolehubah dan diproses dengan cara yang sama seperti notasi klasik. Bagaimana dengan menaip? Sebarang nombor titik terapung mencipta jenis double. Jika anda mesti menggunakan jenis tersebut float, anda mesti menambah satu fatau pada penghujungnya F. Dalam kes ini doubleia akan dikurangkan kepada menaip float. Ini tidak berlaku secara automatik:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
Apabila bermula pada peringkat penyusunan kita melihat ralat berikut:

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

Tersurat rentetan

Huruf rentetan ialah satu set aksara yang disertakan dalam petikan berganda. Jenis ini digunakan sekerap literal angka. Baris juga mungkin mengandungi aksara perkhidmatan yang perlu dilepaskan (yang dipanggil jujukan melarikan diri). Contoh:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
Output: Ini adalah rentetan biasa. Sama standard dan tidak biasa seperti kita yang lain. Dan ini adalah "garisan" yang luar biasa. Jika hanya kerana beberapa "perkataan" di dalamnya terdapat dalam "petikan".

Huruf huruf

Literal aksara dalam Java diwakili oleh set aksara Unicode, iaitu setiap aksara ialah nilai 16-bit. Untuk menunjukkan simbol dalam kod, ia dipisahkan dengan petikan tunggal. Berdasarkan pengalaman, terdapat dua jenis simbol:
  1. Mereka yang boleh dimasukkan dari papan kekunci adalah aksara biasa;
  2. Simbol yang tidak boleh hanya dimasukkan dari papan kekunci (simbol pelbagai bahasa, bentuk, dan sebagainya).
Aksara biasa boleh ditentukan secara eksplisit: ' ,' atau ' @'. Jika watak ialah watak perkhidmatan (contohnya, pemisah baris atau tab), watak sedemikian mesti dilepaskan dengan garis serong ke belakang. Aksara yang tidak boleh hanya dimasukkan dari konsol boleh ditentukan dalam bentuk 16-bitnya. Untuk melakukan ini, anda mesti menentukan kod aksara dengan awalan \u, contohnya ' \u00F7'. Anda juga boleh menentukan aksara dalam gaya perlapanan (nombor tiga digit) dengan hanya menambah garis miring ke belakang pada permulaan, contohnya ' \122'. Pada pendapat saya, ia lebih mudah digunakan \u. Contoh penggunaan:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Output: Ampersand - & simbol Bahagian - ÷

Huruf Boolean

Literal yang paling mudah adalah yang logik. Terdapat hanya 2 nilai: falsedan true, yang dinyatakan secara eksplisit tanpa pelbagai simbol. Literal sedemikian boleh diberikan kepada pembolehubah jenis boolean atau dinyatakan di tempat yang jenis boolean dijangka (contohnya, dalam blok if, walaupun amalan ini dianggap sebagai tidak sopan, secara ringkasnya).
boolean flag = false;

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

Teknik Jedi dengan literal

Terima kasih kepada simbol dalam Java, anda boleh melakukan banyak perkara menarik, termasuk mengurus emoji. Sebagai contoh, mari kita paparkan wajah tersenyum:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Kesimpulan: Wajah tersenyum: 😀 Walaupun paparan emoji boleh menyeramkan (bergantung pada pelaksanaan), penyelesaian ini berfungsi dengan baik. Walau bagaimanapun, sukar untuk mencari emoji yang dikehendaki dalam jadual pengekodan standard; bahagian Emotikon di tapak web rasmi adalah jarang. Lebih mudah untuk menggunakan perpustakaan tambahan.

Literal dalam kursus JavaRush

Dalam kursus JavaRush, literal dipelajari pada tahap 10 dalam kuliah 8 kursus Java Syntax , di mana contoh menerangkan maksud literal dan mengapa ia diperlukan. JavaRush ialah kursus dalam talian tentang pengaturcaraan Java dengan penekanan pada latihan: 1200+ tugasan dengan pengesahan segera, projek mini, permainan.

Kesimpulan

Literal dalam Java adalah perkara yang mudah dalam mana-mana program, tetapi ia mesti digunakan di tempat yang sesuai. Anda tidak boleh hardcode parameter sambungan pangkalan data atau sebarang nilai yang mungkin berubah semasa kitaran hayat program dalam kod sumber.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION