Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.05.2015
Размер:
1.82 Mб
Скачать

Глава 3. Типы данных, переменные и массивы 61_

3 и 42. Это все десятичные значения, т. е. числа с основанием 10. Имеются два других основания, которые можно использовать в целых литералах — восьмеричное (octal), с основанием 8, и шестнаццатеричное (hexadecimal), с основанием 16. Восьмеричные значения обозначены в Java ведущим ну­лем. Обычные десятичные числа не могут иметь ведущий нуль. Таким обра­зом, казалось бы, правильное значение 09 даст ошибку компилятора, так как 9 — вне восьмеричного диапазона от 0 до 7. Более обычное основание для чисел, используемых программистами — шестнадцатеричное, которое четко согласуется с размерами слов по модулю 8, такими как 8, 16, 32 и 64 бита. Шестнадцатеричную константу обозначают с ведущими нулями (Ох или ОХ). Для представления шестнадцатеричного значения используются цифры от 0 до 9 и буквы латинского алфавита от А до F или от а до f (для значений от 10 до 15).

Целые литералы создают значение типа int, которое в Java является 32-раз­рядным целым числом. Так как Java строго типизирован, возникает вопрос, как можно назначить целый литерал одному из целых типов, такому как byte или long, без генерации ошибки несоответствия типов? К счастью, такие ситуации легко управляемы. Когда литеральное значение назначается byte- или short-переменной, никакая ошибка не генерируется, если это значение находится в пределах диапазона целевого типа. Аналогично, целый литерал может всегда назначаться переменной типа long. Однако, чтобы определить длинный литерал, нужно будет явно сообщить компилятору, что его значение имеет тип long. Это осуществляется добавлением в конец ли­терального значения символа L (в верхнем или нижнем регистре). Напри­мер, Ox7ffffffffffffffL ИЛИ 9223372036854775807L — самый большой long-

литерал.

Литералы с плавающей точкой

Числа с плавающей точкой представляют десятичные значения с дробным компонентом. Они могут быть выражены или в стандарной или научной (экспоненциальной) форме. Стандартная форма состоит из числового ком­понента, за которым следует десятичная точка, а далее — дробная компо­нента. Например, 2.0, 3.14159 и 0.6667 представляют правильные числа с плавающей точкой в стандартной системе обозначений. Научная форма представления использует стандартные обозначения — число с плавающей запятой плюс суффикс, который определяет степень 10, на которую должно быть умножено число. Экспонента обозначается буквой Е или е, за которой следует положительное или отрицательное десятичное число. Например: 6.022Е23, 314159Е-05 и 2е+100.

По умолчанию литералы с плавающей точкой Java имеют double-точность. Чтобы определить float-литерал, следует добавить в конец его записи сим­вол F или f. Можно также явно определить double-литерал, добавляя D или d, но подобное определение будет избыточным. По умолчанию тип double

62 Часть I. Язык Java

занимает 64 бита памяти, в то время как менее точный тип с плавающей точкой требует только 32 бита.

Булевы литералы

Булевы литералы просты. Имеются только два логических значения — true и false. Значения true и false не конвертируются в какое-либо числовое представление. Литерал true в Java не равняется 1, а литерал false не рав­няется 0. В Java они могут быть назначены только переменным, объявленным типом boolean, или использоваться в выражениях с булевскими операциями.

Символьные литералы

Символы в Java — это индексы в наборе символов Unicode. Они являются 16-разрядными значениями, которые можно преобразовывать в целые числа и с которыми можно манипулировать целочисленными операциями, такими как сложение и вычитание. Литеральный символ представляется внутри па­ры одиночных кавычек. Все видимые символы ASCII могут быть непосред­ственно введены внутри кавычек, например: 'я', 'z' и '@'. Для символов, ко­торые невозможно ввести непосредственно, существуют несколько escape-последовательностей, позволяющих ввести нужный символ, например,'\" — для самого символа одиночной кавычки, и '\n' — для символа newline. Име­ется также механизм для прямого ввода значения символа в восьмеричном или шестнадцатеричном представлении. Для восьмеричной формы исполь­зуют обратный слэш (\), за которым следует число из трех цифр. Например, '\141 — символ 'а'. Для шестнадцатеричиого представления нужно ввести обратный слэш с символом и (\u), затем четыре шестнадцатеричных цифры. Например, '\u006l' вводит символ 'а' набора ISO-LATIN-1, потому что стар­ший байт нулевой, '\ua432' — это японский символ Katakana. В табл. 3.3 представлены символьные escape-последовательности.

Таблица 3.3. Escape-последовательности символов Escape-последовательность Описание

\ddd Восьмеричный символ (ddd)

\uxxxx Шестнадцатеричный символ UNICODE (xxxx)

\' Одиночная кавычка

\" Двойная кавычка

\\ Обратный слэш

\г Возврат каретки

\n Новая строка (известный так же, как перевод строки)

Соседние файлы в папке JavaLit