JavaRush /Java блогы /Random-KK /Java тіліндегі литералдар

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

Топта жарияланған
Қолданбаны құру кезеңінде әзірлеуші, әдетте, оның құрылымын ғана біледі және ол қандай деректерді өңдейтінін болжамайды. Дегенмен, кейбір жағдайларда бағдарлама codeындағы кейбір деректерді нақты көрсету қажет (мысалы, қайталанулар саны немесе шығарылатын хабарлама). Бұл жағдайда көмекке литералдар келеді. Мазмұны:

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

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

Литералдар түрлері және олардың қолданылуы

Барлық литералдар қарабайыр мәндер (жолдар, сандар, таңбалар, логикалық мәндер). Сіз әріптік нысан жасай алмайсыз. Нысанмен байланыстырылған жалғыз литерал болып табылады null. Примитивтерге сәйкес литералдар да бөлімдерге бөлінеді:
  1. Сандық:
    • бүтін сандар;
    • Қалқымалы нүкте;
  2. Жол;
  3. Кейіпкер;
  4. Ой қозғау.

Сандық әріптер

Бүтін литералдар

Литералдың бұл түрі ең қарапайым. Сандар таңбаларды немесе басқа ештеңені көрсетпей стандартты түрде жазылады. Кез келген бүтін сан әдепкі бойынша бүтін литерал болып табылады. Яғни, айнымалының мәнін немесе циклдегі итерациялар санын анық орнатуға болады. Java 4 санау жүйесін қолдайды:
  • Екілік
  • Сегіздік
  • Ондық
  • Оналтылық
JDK 7 екілік мәндерді жазу мүмкіндігін енгізді . Бұл 0b немесе 0B префиксі арқылы жасалады . Одан кейін 0 және 1 арқылы жазу орындалады. Сегіздіктегі сандар алдыңғы 0 арқылы жазылады. Жарамды сандар 0-ден 7-ге дейін. 09 немесе 08 жазу компиляция қатесін тудырады. Ондық санау жүйесінде проблемалар жоқ : сандар бізге таныс формада көрсетілген. Жалғыз шектеу - бұл сан 0-ден басталуы мүмкін емес, өйткені компилятор оны сегіздік ретінде қабылдайды. Он алтылық жүйедегі сандар 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);
}
Шығару: Екілік жүйедегі а саны: 854 Сегіздік жүйедегі b саны: 5324 Ондық жүйедегі с саны: 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. Екіншісі ғылыми түрде, яғни қарапайым ондық бөлшек плюс 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.05Е-13 Бүтін сандар мен санау жүйелерінен айырмашылығы, ғылыми жазу айнымалыда сақталады және классикалық белгілеу сияқты өңделеді. Теру туралы не айтасыз? Кез келген жылжымалы нүкте түрін жасайды 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 тіліндегі таңбалардың литералы Юни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) {
    // Действия будут выполняться всегда.
}

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

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

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

JavaRush курсында литералдар Java синтаксисі курсының 8-дәрісінде 10-деңгейде оқытылады , мұнда мысалдар литералдардың не екенін және олардың не үшін қажет екенін түсіндіреді. JavaRush – бұл Java бағдарламалаудың онлайн курсы, практикаға баса назар аударылады: жылдам тексеруі бар 1200+ тапсырма, шағын жобалар, ойындар.

Қорытынды

Java тіліндегі литералдар кез келген бағдарламада ыңғайлы нәрсе, бірақ олар қажет жерлерде қолданылуы керек. Дерекқорға қосылу параметрлерін немесе бастапқы codeта бағдарламаның өмірлік циклі кезінде өзгеруі мүмкін кез келген мәндерді қатаң codeтауға болмайды.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION