Не очень понятно про оболочечные Данные,ячейки памяти могут наверно размер менять,какое это значение те же операции только ячейки больше,по скорости тоже самое |
Общие представления о языке Java
1.3.Алфавит языка Java. Десятичные и шестнадцатеричные цифры и целые числа. Зарезервированные слова
Алфавит языка Java
Алфавит языка Java состоит из букв, десятичных цифр и специальных символов. Буквами считаются латинские буквы (кодируются в стандарте ASCII), буквы национальных алфавитов (кодируются в стандарте Unicode, кодировка UTF-16), а также соответствующие им символы, кодируемые управляющими последовательностями (о них будет рассказано чуть позже).
Буквы и цифры можно использовать в качестве идентификаторов (т.е. имен) переменных, методов и других элементов языка программирования. Правда, при использовании в идентификаторах национальных алфавитов в ряде случаев могут возникнуть проблемы – эти символы будут показываться в виде вопросительных знаков.
Как буквы рассматривается только часть символов национальных алфавитов. Остальные символы национальных алфавитов - это специальные символы. Они используются в качестве операторов и разделителей языка Java и не могут входить в состав идентификаторов.
Латинские буквы ASCII
Дополнительные "буквы" ASCII
- _ - знак подчеркивания,
- $ - знак доллара.
Национальные буквы на примере русского алфавита
- АБВГ…ЭЮЯ - заглавные (прописные),
- абвг…эюя – строчные
Десятичные цифры
- 0 1 2 3 4 5 6 7 8 9
Десятичные и шестнадцатеричные цифры и целые числа
Целые числовые константы в исходном коде Java (так называемые литерные константы) могут быть десятичными или шестнадцатеричными. Они записываются либо символами ASCII, или символами Unicode следующим образом.
Десятичные константы записываются как обычно. Например, -137.
Шестнадцатеричная константа начинается с символов 0x или 0X (цифра 0, после которой следует латинская буква X), а затем идет само число в шестнадцатеричной нотации. Например, 0x10 соответствует ; 0x2F соответствует , и т.д. О шестнадцатеричной нотации рассказано чуть ниже.
Ранее иногда применялись восьмеричные числа, и в языках C/C++, а также старых версиях Java можно было их записывать в виде числа, начинающегося с цифры 0. То есть 010 означало . В настоящее время в программировании восьмеричные числа практически никогда не применяются, а неадекватное использование ведущего нуля может приводить к логическим ошибкам в программе.
Целая константа в обычной записи имеет тип int. Если после константы добавить букву L (или l, что хуже видно в тексте, хотя в среде разработки выделяется цветом), она будет иметь тип long, обладающий более широким диапазоном значений, чем тип int.
Поясним теперь, что такое шестнадцатеричная нотация записи чисел и зачем она нужна.
Информация представляется в компьютере в двоичном виде – как последовательность бит. Бит – это минимальная порция информации, он может быть представлен в виде ячейки, в которой хранится или ноль, или единица. Но бит – слишком мелкая единица, поэтому в компьютерах информация хранится, кодируется и передается байтами - порциями по 8 бит.
В данном курсе под "ячейкой памяти" будет пониматься непрерывная область памяти (с последовательно идущими адресами), выделенная программой для хранения данных. На рисунках мы будем изображать ячейку прямоугольником, внутри которого находятся хранящиеся в ячейке данные. Если у ячейки имеется имя, оно будет писаться рядом с этим прямоугольником.
Мы привыкли работать с числами, записанными в так называемой десятичной системе счисления. В ней имеется 10 цифр (от 0 до 9), а в числе имеются десятичные разряды. Каждый разряд слева имеет вес 10 по сравнению с предыдущим, то есть для получения значения числа, соответствующего цифре в каком-то разряде, стоящую в нем цифру надо умножать на 10 в соответствующей степени. То есть , и т.п.
В программировании десятичной системой счисления пользоваться не всегда удобно, так как в компьютерах информация организована в виде бит, байт и более крупных порций. Человеку неудобно оперировать данными в виде длинных последовательностей нулей и единиц. В настоящее время в программировании стандартной является шестнадцатеричная система записи чисел. Например, с ее помощью естественным образом кодируется цвет, устанавливаются значения отдельных бит числа, осуществляется шифрование и дешифрование информации, и так далее. В этой системе счисления все очень похоже на десятичную, но только не 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. Обычно используют заглавные буквы, но можно применять и строчные.
Рассмотрим примеры.
Более подробно вопросы представления чисел в компьютере будут рассмотрены в отдельном разделе.
Зарезервированные слова языка Java
Это слова, зарезервированные для синтаксических конструкций языка, причем их назначение нельзя переопределять внутри программы.
Их нельзя использовать в качестве идентификаторов (имен переменных, подпрограмм и т.п.), но можно использовать в строковых выражениях.
1.4. Управляющие последовательности. Символы Unicode. Специальные символы
Управляющие последовательности
Управляющие последовательности - символы формирования текста
Иногда в тексте программы в строковых константах требуется использовать символы, которые обычным образом в текст программы ввести нельзя. Например, символы кавычек (их надо использовать внутри кавычек, что затруднительно), символ вопроса (зарезервирован для тернарного условного оператора), а также различные специальные символы. В этом случае используют управляющую последовательность – символ обратной косой черты, после которой следует один управляющий символ. В таблице приведены управляющие последовательности, применяющиеся в языке Java.
Управляющие последовательности – символы Unicode
Управляющая последовательность может содержать несколько символов. Например, символы национальных алфавитов могут кодироваться последовательностью "\u", после которой идет код символа в шестнадцатеричной кодировке для кодовых таблиц UTF-16 или UTF-8.
Например:
- \u0030 - \u0039 – цифры ISO-LATIN от 0 до 9
- \u0024 – знак доллара $
- \u0041 - \u005a – буквы от A до Z
- \u0061 - \u007a – буквы от a до z
Простые специальные символы
Составные специальные символы
Символ | Что означает |
---|---|
++ | Оператор инкремента (увеличения на 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 |
/* | Начало многострочного комментария. |
/** | Начало многострочного комментария, предназначенного для автоматического создания документации по классу. |
*/ | Конец многострочного комментария (открываемого как /* или /** ). |
// | Однострочный комментарий |