Аббревиатура JDK расшифровывается как Java Development Kit – комплект разработки программного обеспечения на Java. К сожалению, в комплекте отсутствует даже самая простейшая документация с описанием назначения имеющихся в нём инструментов – даны ссылки на сайт компании Sun, где можно найти эту информацию. Поэтому перечислим назначение основных инструментов. Они делятся на несколько категорий.
Средства разработки приложений
Утилита | Назначение |
javac | Компилятор в режиме командной строки для программ, написанных на языке Java |
java | Утилита для запуска в режиме командной строки откомпилированных программ-приложений |
appletviewer | Утилита для запуска на исполнение и отладку апплетов без браузера. При этом не гарантируется работоспособность отлаженного апплета в браузере. |
jdb | Отладчик программ, написанных на языке Java |
javadoc | Генератор документации по классом на основе комментариев, начинающихся с /** |
jar | Создание и управление Java-архивами jar |
javah | Генератор заголовочных файлов C/C++ для подключения к программам Java внешних библиотек C/C++ на основе интерфейса JNI |
javap | Дизассемблер классов |
extcheck | Утилита для обнаружения конфликтов между файлами архивов jar |
native2ascii | Утилита для конвертации в режиме командной строки параметра, передаваемого в виде текста на национальном алфавите, в последовательность символов UNICODE. |
Кроме этого, имеются средства поддержки работы в WWW и корпоративных сетях (интранет) с интерфейсом RMI - интерфейсом удалённого вызова методов. Это программы rmic, rmiregistry, rmid. Также имеются средства поддержки информационной безопасности keytool, jarsigner, policytool, и ряд файлов других категорий утилит.
Подчеркнём, что набор утилит JDK рассчитан на морально устаревший режим командной строки, и что гораздо удобнее и правильнее пользоваться современной профессиональной средой разработки NetBeans. Для её работы из JDK необходим только комплект JRE.
1.3.Алфавит языка 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 соответствует 1016=16; 0x2F соответствует 2F16=47, и т.д. О шестнадцатеричной нотации рассказано чуть ниже.
Ранее иногда применялись восьмеричные числа, и в языках C/C++, а также старых версиях Java можно было их записывать в виде числа, начинающегося с цифры 0. То есть 010 означало 108=8. В настоящее время в программировании восьмеричные числа практически никогда не применяются, а неадекватное использование ведущего нуля может приводить к логическим ошибкам в программе.
Целая константа в обычной записи имеет тип int. Если после константы добавить букву L (или l, что хуже видно в тексте, хотя в среде разработки выделяется цветом), она будет иметь тип long, обладающий более широким диапазоном значений, чем тип int.
Поясним теперь, что такое шестнадцатеричная нотация записи чисел и зачем она нужна.
Информация представляется в компьютере в двоичном виде – как последовательность бит. Бит – это минимальная порция информации, он может быть представлен в виде ячейки, в которой хранится или ноль, или единица. Но бит – слишком мелкая единица, поэтому в компьютерах информация хранится, кодируется и передаётся байтами - порциями по 8 бит.
В данной книге под “ячейкой памяти” будет пониматься непрерывная область памяти (с последовательно идущими адресами), выделенная программой для хранения данных. На рисунках мы будем изображать ячейку прямоугольником, внутри которого находятся хранящиеся в ячейке данные. Если у ячейки имеется имя, оно будет писаться рядом с этим прямоугольником.
Мы привыкли работать с числами, записанными в так называемой десятичной системе счисления. В ней имеется 10 цифр (от 0 до 9), а в числе имеются десятичные разряды. Каждый разряд слева имеет вес 10 по сравнению с предыдущим, то есть для получения значения числа, соответствующего цифре в каком-то разряде, стоящую в нём цифру надо умножать на 10 в соответствующей степени. То есть 52=5∙10+2, 137=1∙102+3∙101+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 = 1016 =16 ;
0x100 = 10016 =16 ∙16=256;
0x1000 = 100016 =(16)3=4096;
0x20 = 2016 =2∙16 =32;
0x21 = 2116 =2∙16 +1=33;
0xF = F16 =15 ;
0x1F = 1F16 =1∙16 +15=31 ;
0x2F = 2F16 =2∙16 +15=47 ;
0xFF = FF16 =15 ∙16+15=255;
Более подробно вопросы представления чисел в компьютере будут рассмотрены в отдельном разделе.
Это слова, зарезервированные для синтаксических конструкций языка, причём их назначение нельзя переопределять внутри программы.
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.