Тиркемени түзүү стадиясында иштеп чыгуучу, эреже катары, анын түзүмүн гана билет жана ал кандай маалыматтарды иштетээрин ойлобойт. Бирок, кээ бир учурларда, программа codeундагы кээ бир маалыматтарды (мисалы, итерациялардын саны же чыгарыла турган билдирүү) ачык көрсөтүү керек. Бул учурда, литералдар жардамга келет. Мазмуну:
- Литералдар деген эмне
- Литералдардын түрлөрү жана алардын колдонулушу
- Сандык литералдар
- Сап литералдары
- Символдун литералдары
- Буль литералдары
- Литералдар менен Jedi техникасы
- JavaRush курсундагы литералдар
- Корутунду
Литералдар деген эмне?
Литералдар программа codeунда ачык көрсөтүлгөн маанилер - ишке киргизүү учурунда codeдо турган белгилүү бир түрдөгү константалар.class Test {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Бул класста "Салам дүйнө!" - түзмө-түз. Литералдар ар кандай типте болот, алардын максатына жана кантип жазылганына жараша аныкталат.
Литералдардын түрлөрү жана алардын колдонулушу
Бардык литералдар примитивдик маанилер (саптар, сандар, символдор, логикалык маанилер). Сиз түзмө-түз an object түзө албайсыз. Объект менен байланышкан жалгыз литералnull
. Примитивдерге ылайык литералдар да бөлүктөргө бөлүнөт:
- Сандык:
- бүтүн сандар;
- калкыма чекит;
- сап;
- Character;
- Brain teaser.
Сандык литералдар
бүтүн литералдар
Сөздүн бул түрү эң жөнөкөй. Сандар символдорду же башка эч нерсени көрсөтпөстөн, стандарттуу түрдө жазылат. Ар кандай бүтүн сан демейки боюнча бүтүн литерал болуп саналат. Башкача айтканда, сиз өзгөрмөнүн маанисин же циклдеги итерациялардын санын ачык орното аласыз. Java 4 сан системасын колдойт:- Бинардык
- Октал
- Ондук
- Он алтылык
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
кошушуңуз керек . Бул учурда ал түргө кыскартылат . Бул автоматтык түрдө болбойт: f
F
double
float
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 биттик маани. Коддогу символду көрсөтүү үчүн ал бир тырмакча менен бөлүнөт. Тажрыйбага таянсак, символдордун эки түрү бар:- Клавиатурадан кирүүгө мүмкүн болгондор кадимки символдор;
- Клавиатурадан жөн эле киргизүүгө мүмкүн болбогон белгилер (ар кандай тилдердин символдору, фигуралар ж.б.у.с.).
,
' же ' @
'. Эгерде символ кызматтык символ болсо (мисалы, саптын үзүлүшү же өтмөк), мындай белги арткы сызык менен кутулууга тийиш. Консолдон жөн эле кирүүгө мүмкүн болбогон белгилерди алардын 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сында каалаган эмодзилерди издөө кыйын, расмий веб-сайттагы Эмотикон бөлүмү сейрек. Кошумча китепканаларды колдонуу алда канча жеңил.
GO TO FULL VERSION