Опубликован: 04.12.2009 | Доступ: свободный | Студентов: 8416 / 657 | Оценка: 4.30 / 3.87 | Длительность: 27:27:00
Лекция 1:

Общие представления о языке Java

Лекция 1: 1234 || Лекция 2 >

1.3.Алфавит языка Java. Десятичные и шестнадцатеричные цифры и целые числа. Зарезервированные слова

Алфавит языка Java

Алфавит языка Java состоит из букв, десятичных цифр и специальных символов. Буквами считаются латинские буквы (кодируются в стандарте ASCII), буквы национальных алфавитов (кодируются в стандарте Unicode, кодировка UTF-16), а также соответствующие им символы, кодируемые управляющими последовательностями (о них будет рассказано чуть позже).

Буквы и цифры можно использовать в качестве идентификаторов (т.е. имен) переменных, методов и других элементов языка программирования. Правда, при использовании в идентификаторах национальных алфавитов в ряде случаев могут возникнуть проблемы – эти символы будут показываться в виде вопросительных знаков.

Как буквы рассматривается только часть символов национальных алфавитов. Остальные символы национальных алфавитов - это специальные символы. Они используются в качестве операторов и разделителей языка Java и не могут входить в состав идентификаторов.

Латинские буквы ASCII

  • ABCD...XYZ - заглавные (прописные) ,
  • abcd...xyz – строчные

Дополнительные "буквы" ASCII

  • _ - знак подчеркивания,
  • $ - знак доллара.

Национальные буквы на примере русского алфавита

  • АБВГ…ЭЮЯ - заглавные (прописные),
  • абвг…эюя – строчные

Десятичные цифры

  • 0 1 2 3 4 5 6 7 8 9

Десятичные и шестнадцатеричные цифры и целые числа

Целые числовые константы в исходном коде Java (так называемые литерные константы) могут быть десятичными или шестнадцатеричными. Они записываются либо символами ASCII, или символами Unicode следующим образом.

Десятичные константы записываются как обычно. Например, -137.

Шестнадцатеричная константа начинается с символов 0x или 0X (цифра 0, после которой следует латинская буква X), а затем идет само число в шестнадцатеричной нотации. Например, 0x10 соответствует 10_{16}=16 ; 0x2F соответствует 2F_{16}=47, и т.д. О шестнадцатеричной нотации рассказано чуть ниже.

Ранее иногда применялись восьмеричные числа, и в языках C/C++, а также старых версиях Java можно было их записывать в виде числа, начинающегося с цифры 0. То есть 010 означало 10_8=8. В настоящее время в программировании восьмеричные числа практически никогда не применяются, а неадекватное использование ведущего нуля может приводить к логическим ошибкам в программе.

Целая константа в обычной записи имеет тип int. Если после константы добавить букву L (или l, что хуже видно в тексте, хотя в среде разработки выделяется цветом), она будет иметь тип long, обладающий более широким диапазоном значений, чем тип int.

Поясним теперь, что такое шестнадцатеричная нотация записи чисел и зачем она нужна.

Информация представляется в компьютере в двоичном виде – как последовательность бит. Бит – это минимальная порция информации, он может быть представлен в виде ячейки, в которой хранится или ноль, или единица. Но бит – слишком мелкая единица, поэтому в компьютерах информация хранится, кодируется и передается байтами - порциями по 8 бит.

В данном курсе под "ячейкой памяти" будет пониматься непрерывная область памяти (с последовательно идущими адресами), выделенная программой для хранения данных. На рисунках мы будем изображать ячейку прямоугольником, внутри которого находятся хранящиеся в ячейке данные. Если у ячейки имеется имя, оно будет писаться рядом с этим прямоугольником.

Мы привыкли работать с числами, записанными в так называемой десятичной системе счисления. В ней имеется 10 цифр (от 0 до 9), а в числе имеются десятичные разряды. Каждый разряд слева имеет вес 10 по сравнению с предыдущим, то есть для получения значения числа, соответствующего цифре в каком-то разряде, стоящую в нем цифру надо умножать на 10 в соответствующей степени. То есть 52=5 \times 10+2, 137=1 \times 10^2+3 \times 10^1+7, и т.п.

В программировании десятичной системой счисления пользоваться не всегда удобно, так как в компьютерах информация организована в виде бит, байт и более крупных порций. Человеку неудобно оперировать данными в виде длинных последовательностей нулей и единиц. В настоящее время в программировании стандартной является шестнадцатеричная система записи чисел. Например, с ее помощью естественным образом кодируется цвет, устанавливаются значения отдельных бит числа, осуществляется шифрование и дешифрование информации, и так далее. В этой системе счисления все очень похоже на десятичную, но только не 10, а 16 цифр, и вес разряда не 10, а 16. В качестве первых 10 цифр используются обычные десятичные цифры, а в качестве недостающих цифр, больших 9, используются заглавные латинские буквы A, B, C, D, E, F:

  • 0 1 2 3 4 5 6 7 8 9 A B C D E F

То есть A=10, B=11, C=12, D=13, E=14, F=15.

Заметим, что в шестнадцатеричной системе счисления числа от 0 до 9 записываются одинаково, а превышающие 9 отличаются. Для чисел от 10 до 15 в шестнадцатеричной системе счисления используются буквы от A до F, после чего происходит использование следующего шестнадцатеричного разряда. Десятичное число 16 в шестнадцатеричной системе счисления записывается как 10. Для того, чтобы не путать числа, записанные в разных системах счисления, около них справа пишут индекс с указанием основания системы счисления. Для десятичной системы счисления это 10, для шестнадцатеричной 16. Для десятичной системы основание обычно не указывают, если это не приводит к путанице. Точно так же в технической литературе часто не указывают основание для чисел, записанных в шестнадцатеричной системе счисления, если в записи числа встречаются не только "обычные" цифры от 0 до 9, но и "буквенные" цифры от A до F. Обычно используют заглавные буквы, но можно применять и строчные.

Рассмотрим примеры.

  • 0x10 = 10_{16} =16 ;
  • 0x100 = 100_{16} =16 \times 16=256;
  • 0x1000 = 1000_{16} =(16)^3=4096;
  • 0x20 = 20_{16} =2 \times 16 =32;
  • 0x21 = 21_{16} =2 \times 16 +1=33;
  • 0xF = F_{16} =15 ;
  • 0x1F = 1F_{16} =1 \times 16 +15=31 ;
  • 0x2F = 2F_{16} =2 \times 16 +15=47 ;
  • 0xFF = FF_{16} =15 \times 16+15=255;

Более подробно вопросы представления чисел в компьютере будут рассмотрены в отдельном разделе.

Зарезервированные слова языка Java

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

Таблица 1.2.
abstract boolean break byte case
catch char class const continue
default do double else enum
extends false final finally float
for goto if implements import
instanceof int interface long native
new null package private protected
public return short static super
switch synchronized this throw throws
transient true try void volatile
while

Их нельзя использовать в качестве идентификаторов (имен переменных, подпрограмм и т.п.), но можно использовать в строковых выражениях.

1.4. Управляющие последовательности. Символы Unicode. Специальные символы

Управляющие последовательности

Управляющие последовательности - символы формирования текста

Иногда в тексте программы в строковых константах требуется использовать символы, которые обычным образом в текст программы ввести нельзя. Например, символы кавычек (их надо использовать внутри кавычек, что затруднительно), символ вопроса (зарезервирован для тернарного условного оператора), а также различные специальные символы. В этом случае используют управляющую последовательность – символ обратной косой черты, после которой следует один управляющий символ. В таблице приведены управляющие последовательности, применяющиеся в языке Java.

Таблица 1.3.
Символ Что означает
\b возврат на один символ назад
\f перевод на новую страницу
\n перевод на новую строку
\r возврат к началу строки
\t горизонтальная табуляция
\v вертикальная табуляция
\' кавычка
\" двойные кавычки
\\ обратная косая черта
\? вопросительный знак
\u начало кодировки символа Unicode
Управляющие последовательности – символы Unicode

Управляющая последовательность может содержать несколько символов. Например, символы национальных алфавитов могут кодироваться последовательностью "\u", после которой идет код символа в шестнадцатеричной кодировке для кодовых таблиц UTF-16 или UTF-8.

Например:

  • \u0030 - \u0039 – цифры ISO-LATIN от 0 до 9
  • \u0024 – знак доллара $
  • \u0041 - \u005a – буквы от A до Z
  • \u0061 - \u007a – буквы от a до z

Простые специальные символы

Таблица 1.4.
+ Оператор сложения
Оператор вычитания
* Оператор умножения
/ Оператор деления
% Оператор остатка от целочисленного деления
= Оператор присваивания
~ Оператор побитового дополнения (побитовое "не")
? Вопросительный знак – часть тернарного (состоящего из трех частей) условного оператора "? :"
: Двоеточие – часть условного оператора "? :". Также используется для задания метки – ставится после имени метки.
^ Оператор "исключающее или" ( XOR )
& Оператор "побитовое и" ( AND )
| Оператор "побитовое или" ( OR )
! Оператор "НЕ"
> Больше
< Меньше
{ Левая фигурная скобка – открытие блока кода
} Правая фигурная скобка – закрытие блока кода
, Запятая - разделитель в списке параметров оператора; разделитель в составном операторе
. Точка – десятичный разделитель в числовом литерном выражении; разделитель в составном имени для доступа к элементу пакета, класса, объекта, интерфейса
( Левая круглая скобка – используется для открытия списка параметров в операторах и для открытия группируемой части в выражениях
) Правая круглая скобка– используется для закрытия списка параметров в операторах и для закрытия группируемой части в выражениях
[ Левая квадратная скобка – открытие индекса массива
] Правая квадратная скобка – закрытие индекса массива
; Точка с запятой – окончание оператора
' Апостроф (одиночная кавычка) – открытие и закрытие символа
" Двойные кавычки – открытие и закрытие строки символов
\ обратная косая черта (backslash) – используется для задания управляющих последовательностей символов
знак пробела (невидимый)
знак табуляции (невидимый)
@ Коммерческое a ("эт") – знак начала метаданных
# - не имеет специального назначения
¤ - не имеет специального назначения
" - не имеет специального назначения
" - не имеет специального назначения
- не имеет специального назначения
§ - не имеет специального назначения

Составные специальные символы

Таблица 1.5.
Символ Что означает
++ Оператор инкремента (увеличения на 1); x++ эквивалентно x=x+1
-- Оператор декремента (уменьшения на 1); x-- эквивалентно x=x-1
&& Оператор "логическое И" ( AND )
|| Оператор " логическое ИЛИ" ( OR )
<< Оператор левого побитового сдвига
>>> Оператор беззнакового правого побитового сдвига
>> Оператор правого побитового сдвига с сохранением знака отрицательного числа
== Равно
!= не равно
+= y+=x эквивалентно y=y+x
-= y-=x эквивалентно y=y-x
*= y*=x эквивалентно y=y*x
/= y/=x эквивалентно y=y/x
%= y%=x эквивалентно y=y%x
|= y|=x эквивалентно y=y|x
^= y^=x эквивалентно y=y^x
>>= y>>=x эквивалентно y= y>>x
>>>= y>>>=x эквивалентно y= y>>>x
<<= y<<=x эквивалентно y= y<<x
/* Начало многострочного комментария.
/** Начало многострочного комментария, предназначенного для автоматического создания документации по классу.
*/ Конец многострочного комментария (открываемого как /* или /** ).
// Однострочный комментарий
Лекция 1: 1234 || Лекция 2 >
Полетаев Дмитрий
Полетаев Дмитрий
Не очень понятно про оболочечные Данные,ячейки памяти могут наверно размер менять,какое это значение те же операции только ячейки больше,по скорости тоже самое
Максим Старостин
Максим Старостин

Код с перемещением фигур не стирает старую фигуру, а просто рисует новую в новом месте. Точку, круг.