JavaRush /Java блогу /Random-KY /Java тилиндеги литералдар

Java тилиндеги литералдар

Группада жарыяланган
Тиркемени түзүү стадиясында иштеп чыгуучу, эреже катары, анын түзүмүн гана билет жана ал кандай маалыматтарды иштетээрин ойлобойт. Бирок, кээ бир учурларда, программа codeундагы кээ бир маалыматтарды (мисалы, итерациялардын саны же чыгарыла турган билдирүү) ачык көрсөтүү керек. Бул учурда, литералдар жардамга келет. Мазмуну:

Литералдар деген эмне?

Литералдар программа codeунда ачык көрсөтүлгөн маанилер - ишке киргизүү учурунда codeдо турган белгилүү бир түрдөгү константалар.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
Бул класста "Салам дүйнө!" - түзмө-түз. Литералдар ар кандай типте болот, алардын максатына жана кантип жазылганына жараша аныкталат.

Литералдардын түрлөрү жана алардын колдонулушу

Бардык литералдар примитивдик маанилер (саптар, сандар, символдор, логикалык маанилер). Сиз түзмө-түз an object түзө албайсыз. Объект менен байланышкан жалгыз литерал null. Примитивдерге ылайык литералдар да бөлүктөргө бөлүнөт:
  1. Сандык:
    • бүтүн сандар;
    • калкыма чекит;
  2. сап;
  3. Character;
  4. Brain teaser.

Сандык литералдар

бүтүн литералдар

Сөздүн бул түрү эң жөнөкөй. Сандар символдорду же башка эч нерсени көрсөтпөстөн, стандарттуу түрдө жазылат. Ар кандай бүтүн сан демейки боюнча бүтүн литерал болуп саналат. Башкача айтканда, сиз өзгөрмөнүн маанисин же циклдеги итерациялардын санын ачык орното аласыз. Java 4 сан системасын колдойт:
  • Бинардык
  • Октал
  • Ондук
  • Он алтылык
JDK 7 бинардык маанилерди жазуу мүмкүнчүлүгүн киргизди . Бул 0b же 0B префикси аркылуу жасалат . Андан кийин 0 жана 1 аркылуу жазуу келет. Сегиздиктеги сандар алдыңкы 0 аркылуу жазылат. Жарактуу сандар 0дөн 7ге чейин. 09 же 08ди жазуу компиляция катасын пайда кылат. Ондук сан системасында эч кандай көйгөйлөр жок : сандар бизге тааныш формада көрсөтүлгөн. Бир гана чектөө - бул сан 0 менен башталbyte, анткени компилятор аны сегиздик катары кабыл алат. Он алтылык системадагы сандар 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);
}
Чыгуу: Экorк системада а саны: 854 Сегиздик системада b саны: 5324 Ондук системада c саны: 456 Он алтылык системада d саны: 1318162 Сандар ар кандай санауу системаларында көрсөтүлгөнүнө карабастан, программада алар ондук система катары иштетилет. сандар. Маанилерден ашып кетүү компиляция катасына алып келет:
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

Калкыма чекит литералдары

Калкыма чекиттерди же бөлчөк сандарды эки жол менен жазууга болот. Биринчи классикалык ондук бөлчөк катары: 3,14159 же 2,718281282459045. Экинчиси orмий формада, башкача айтканда, жөнөкөй ондук бөлчөк плюс 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);
Чыгуу: Классикалык кош тип: 2.718281828459045 Илимий кош тип: 4.05E-13 Бүтүн сандар жана санауу системаларынан айырмаланып, orмий белгилер өзгөрмөдө сакталат жана классикалык белгилер сыяктуу эле иштетилет. Терүү жөнүндө эмне айтууга болот? Каалаган калкыма чекит саны түрү түзөт double. Эгер сиз түрүн колдонушуңуз керек болсо , аягында же белгисин floatкошушуңуз керек . Бул учурда ал түргө кыскартылат . Бул автоматтык түрдө болбойт: 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 тorндеги символдордун литералы Юниcode символдор жыйындысы менен көрсөтүлөт, башкача айтканда, ар бир символ 16 биттик маани. Коддогу символду көрсөтүү үчүн ал бир тырмакча менен бөлүнөт. Тажрыйбага таянсак, символдордун эки түрү бар:
  1. Клавиатурадан кирүүгө мүмкүн болгондор кадимки символдор;
  2. Клавиатурадан жөн эле киргизүүгө мүмкүн болбогон белгилер (ар кандай тилдердин символдору, фигуралар ж.б.у.с.).
Кадимки символдор ачык көрсөтүлүшү мүмкүн: ' ,' же ' @'. Эгерде символ кызматтык символ болсо (мисалы, саптын үзүлүшү же өтмөк), мындай белги арткы сызык менен кутулууга тийиш. Консолдон жөн эле кирүүгө мүмкүн болбогон белгилерди алардын 16-бит түрүндө көрсөтүүгө болот. Бул үчүн, символдун codeун префикс менен көрсөтүшүңүз керек \u, мисалы ' \u00F7'. Сиз ошондой эле символдорду сегиздик стилде (үч орундуу сан) жөн гана башына тескери сызык кошуу менен көрсөтө аласыз, мисалы ' \122'. Менин оюмча, аны колдонуу оңой \u. Колдонуу мисалы:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Чыгуу: Амперсанд - & Бөлүү белгиси - ÷

Буль литералдары

Эң жөнөкөй сөз логикалык сөз. 2 гана маани бар: falseжана true, алар ар кандай символдорсуз ачык көрсөтүлгөн. Мындай литералдар логикалык түрдөгү өзгөрмөлөргө ыйгарылышы мүмкүн же логикалык түрү күтүлгөн жерде көрсөтүлүшү мүмкүн (мисалы, if блогунда, бирок бул практика, жумшак айтканда, жаман адеп деп эсептелет).
boolean flag = false;

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

Литералдар менен Jedi техникасы

Javaдагы символдордун аркасында сиз көптөгөн кызыктуу нерселерди жасай аласыз, анын ичинде эмодзилерди башкаруу. Мисалы, жылмайган жүздү көрсөтөлү:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Корутунду: Жылмайган жүз: 😀 Эмодзилердин дисплейи үрөй учурарлык болушу мүмкүн (ишке ашырууга жараша), бул чечим ишти жакшы аткарат. Бирок, стандарттуу codeдоо tableсында каалаган эмодзилерди издөө кыйын, расмий веб-сайттагы Эмотикон бөлүмү сейрек. Кошумча китепканаларды колдонуу алда канча жеңил.

JavaRush курсундагы литералдар

JavaRush курсунда литералдар Java синтаксиси курсунун 8-лекциясында 10-деңгээлде изилденет , анда мисалдар литералдар эмне экенин жана алар эмне үчүн керек экенин түшүндүрөт. JavaRush бул Java программалоо боюнча онлайн курсу, бул практикага басым жасаган: 1200+ тапшырмалар, ыкчам текшерүү, мини-долбоорлор, оюндар.

Корутунду

Java тorндеги литералдар ар кандай программада ыңгайлуу нерсе, бирок алар ылайыктуу жерлерде колдонулушу керек. Булак codeундагы программанын иштөө циклинин жүрүшүндө өзгөрүшү мүмкүн болгон маалыматтар базасынын туташуу параметрлерин же кандайдыр бир маанилерди катуу codeдобоңуз.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION