В языке Java можно записывать константы разных типов в разных видах. Перечислим их.

Целые константы можно записывать в трех системах счисления:

  • в десятичной форме: +5, -7, 12345678 ;
  • в восьмеричной форме, начиная с нуля: 027, -0326, 0777 ; в записи таких констант недопустимы цифры 8 и 9;

Замечание

Число, начинающееся с нуля, записано в восьмеричной форме, а не в десятичной.

  • в шестнадцатеричной форме, начиная с нуля и латинской буквы х или X: 0xff0a, 0xFC2D, 0x45a8, 0X77FF ; здесь строчные и прописные буквы не различаются.

Целые константы хранятся в формате типа int (см. ниже).

В конце целой константы можно записать букву прописную L или строчную l , тогда константа будет сохраняться в длинном формате типа long (см. ниже): +25L, -0371, OxffL, OXDFDF1 .

Совет

Не используйте при записи длинных целых констант строчную латинскую букву l , ее легко спутать с единицей.

Действительные константы записываются только в десятичной системе счисления в двух формах:

  • c фиксированной точкой: 37.25, -128.678967, +27.035 ;
  • с плавающей точкой: 2.5е34, -0.345е-25, 37.2Е+4 ; можно писать строчную или прописную латинскую букву Е ; пробелы и скобки недопустимы.

В конце действительной константы можно поставить букву F или f , тогда константа будет сохраняться в формате типа float (см. ниже): 3.5f, -45.67F, 4.7e-5f . Можно приписать и букву D (или d ): 0.045D, -456.77889d , означающую тип double , но это излишне, поскольку действительные константы и так хранятся в формате типа double .

 

Для записи одиночных символов используются следующие формы.

  • Печатные символы можно записать в апострофах: ' а ', ' N ', ' ? '.
  • Управляющие символы записываются в апострофах с обратной наклонной чертой:
    • ' \n ' — символ перевода строки newline с кодом ASCII 10;
    • ' \r ' — символ возврата каретки CR с кодом 13;
    • ' \f ' — символ перевода страницы FF с кодом 12;
    • ' \b ' — символ возврата на шаг BS с кодом 8;
    • ' \t ' — символ горизонтальной табуляции НТ с кодом 9;
    • ' \\ ' — обратная наклонная черта;
    • ' \" ' — кавычка;
    • ' \' ' — апостроф.
  • Код любого символа с десятичной кодировкой от 0 до 255 можно задать, записав его не более чем тремя цифрами в восьмеричной системе счисления в апострофах после обратной наклонной черты: ' \123 ' — буква S , ' \346 ' — буква Ж в кодировке СР1251. Не рекомендуется использовать эту форму записи для печатных и управляющих символов, перечисленных в предыдущем пункте, поскольку компилятор сразу же переведет восьмеричную запись в указанную выше форму. Наибольший код ' \377 ' — десятичное число 255.
  • Код любого символа в кодировке Unicode набирается в апострофах после обратной наклонной черты и латинской буквы ц ровно четырьмя шестнад-цатеричными цифрами: ' \u0053 ' — буква S , ' \u0416 ' — буква Ж .

Символы хранятся в формате типа char (см. ниже).

Примечание

Прописные русские буквы в кодировке Unicode занимают диапазон от ' \u0410 ' — заглавная буква А , до ' \u042F ' — заглавная Я , строчные буквы от ' \u0430 ' — а , до ' \044F ' — я .

В какой бы форме ни записывались символы, компилятор переводит их в Unicode, включая и исходный текст программы.

Замечание

Компилятор и исполняющая система Java работают только с кодировкой Unicode


 

Строки символов заключаются в кавычки. Управляющие символы и коды записываются в строках точно так же, с обратной наклонной чертой, но, разумеется, без апострофов, и оказывают то же действие. Строки могут располагаться только на одной строке исходного кода, нельзя открывающую кавычку поставить на одной строке, а закрывающую — на следующей.

Вот некоторые примеры:

"Это строка\nс переносом"

"\"Спартак\" — Чемпион!"

Замечание

Строки символов нельзя начинать на одной строке исходного кода, а заканчивать на другой.

Для строковых констант определена операция сцеплений, обозначаемая плюсом.

" Сцепление " + "строк" дает в результате строку "Сцепление строк" .

Чтобы записать длинную строку в виде одной строковой константы, надо после закрывающей кавычки на первой и следующих строках поставить плюс +; тогда компилятор соберет две (или более) строки в одну строковую константу, например:

"Одна строковая константа, записанная "+ 

"на двух строках исходного текста"

Тот, кто попытается выводить символы в кодировке Unicode, например, слово "Россия":

System.out.println("\u0429\u043e\u0441\u0441\u0438\u044f");

должен знать, что Windows 95/98/ME вообще не работает с Unicode, a Windows NT/2000 использует для вывода в окно Command Prompt шрифт Terminal, в котором русские буквы, расположены в начальных кодах Unicode, почему-то в кодировке СР866, и разбросаны по другим сегментам Unicode.

Не все шрифты Unicode содержат начертания (glyphs) всех символов, поэтому будьте осторожны при выводе строк в кодировке Unicode.

Совет

Используйте Unicode напрямую только в крайних случаях.