Общая характеристика
Java является объектно-ориентированным языком программирования, разработанным фирмой Sun Microsystems ( Sun ).
Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.
Основные достоинства языка
-Наибольшая среди всех языков программирования степень переносимости программ.
-Мощные стандартные библиотеки.
-Встроенная поддержка работы в сетях (как локальных, так и Internet/Intranet).
Основные недостатки
-Низкое, в сравнении с другими языками, быстродействие, повышенные требования к объему оперативной памяти.
-Большой объем стандартных библиотек и технологий создает сложности в изучении языка.
-Постоянное развитие языка вызывает наличие как устаревших, так и новых средств, имеющих одно и то же функциональное назначение.
Основные особенности
-Java является полностью объектно-ориентированным языком.
-Реализован с использованием интерпретации Р-кода (байт-кода). Т.е. программа сначала транслируется в машинонезависимый Р-код, а потом интерпретируется некоторой программой-интерпретатором (виртуальная Java-машина, JVM).
Структура пакета SDK
-bin\ — каталог инструментария разработчика
-demo\ — каталог с примерами
-include\ — для взаимодействия с программами на C, C++
-include-old\ — аналогично, но предыдущая версия
-jre\ — каталог инструментария пользователя (то, что поставляется конечному пользователю при установке (deployment) готового приложения)
-jre\bin\ — Java-машина(ы) (JVM)
-jre\lib\ — библиотеки Java для конечных пользователей + ряд настроечных файлов
-lib\ — библиотеки Java для разработчиков
Лексические основы Java
Программы на Java - это набор пробелов, комментариев, ключевых слов, идентификаторов, литеральных констант, операторов и разделителей.
Комментарии:
// - однострочные
/* …*/ - многострочные
/**…*/- документационный комментарий
Пробельные символы:
Java – язык свободной формы, т.е. не нужно следовать каким-либо правилам структурированного расположения текста. Но в программе всегда присутствуют пробельные символы. К ним относятся: space, tab, newline.
Лексемы в Java:
-идентификаторы (identifiers);
-ключевые слова (key words);
-литералы (literals);
-разделители (separators);
-операторы (operators).
Идентификаторы
Идентификаторы используются для именования классов, методов и переменных.
В качестве идентификатора может использоваться любая последовательность строчных и прописных букв, цифр и символов _ и $. Идентификаторы не должны начинаться с цифры, чтобы транслятор не перепутал их с числовыми литеральными константами.
Java - язык, чувствительный к регистру букв.
Ключевые слова
Зарезервированные слова. Это специальные идентификаторы, которые в языке Java используются для того, чтобы идентифицировать встроенные типы, модификаторы и средства управления выполнением программы. Всего их 48
Разделители
Символы для разделения
() – ограничивают списки параметров в определениях методов и вызовах процедур.
{} – ограничивают значения автоматически инициализированных массивов, определяют блоки кода в классах, методах и лок. Областях действий
[] – Используются для объявления массивов, для указания элементов массива
; - завершает оператор
, - разделяет последовательность идентификаторов в объявлениях переменных, а также цепочку выражений внутри оператора for.
. – Разделяет имена пакетов и классов, отделяетпеременные или методы от ссылочной переменной.
Литералы
Адресная, числовая или символьная константа.
- целочисленные (integer). Целочисленные литералы позволяют задавать целочисленные значения в десятеричном, восьмеричном и шестнадцатеричном виде. (0, 00, 0x0, 0xaBcDeF, 0xCafe, 0xDEC)
- дробные (floating-point)
- булевские (boolean)
- символьные (character)
- строковые (string). Состоят из набора символов и записываются в двойных кавычках. Длина не ограничена
- null-литеральные (null-literall)
Символьные описывают символы Unicode. ‘a’ – a, ‘ ‘ – пробел, ‘\40041’ – A.
Символьный литерал может содержать последовательность, начинающуюся с \
\b backspace BS – забой
\t horizontal tab HT – табуляция
\n linefeed LF – конец строки
\f form feed FF – конец страницы
\r carriage return CR – возврат каретки
\" double quote " – двойная кавычка
\' single quote ' – одинарная кавычка
\\ backslash \ – обратная косая черта
Операторы (operators) в языке Java
Присваивание x = a + b;
a = b = 1; a+b;
Операции сравнения
>, <, >=, <=, != , ==.
Операции инкремента, декремента
++ , --
префиксная (++y). А изменяется прежде, чем значение используется в выражении
постфиксная (y++). Предыдущее значение сначала используется в выражении и только потом А изменяется
a = 5;
x = a++; // x = 5
y = ++a; // y = 7
Операции в Java
Операции в языке Java - это специальные символы, которые сообщают транслятору о том, что вы хотите выполнить операцию с некоторыми операндами.
-Некоторые операции требуют одного операнда, их называют унарными.
-Одни операции ставятся перед операндами и называются префиксными, другие - после, их называют постфиксными операторами.
- Большинство же операций ставят между двумя операндами, такие операции называются инфиксными бинарными операциями.
В Java имеется 44 встроенных операции.
Их можно разбить на 4 класса –
- арифметические,
- битовые,
- операции сравнения
- логические
Остаток от деления (значение по модулю) %
Расширенные операции присваивания
+=, -=, *=, /= и др
a += b a = a + b
Логические операции
! — отрицание
&& — логическое 'и'
|| — логическое 'или'
Операнды этих операций должны быть типа boolean, результат — boolean.
Операции && и || имеют одну особенность — их правый операнд может и не вычислиться, если результат уже известен по левому операнду
Побитовые логические операции
& — побитовое 'и'
| — побитовое 'или'
^ — побитовое 'исключающее
или'
~ — побитовое отрицание
Операции сдвига
<< — сдвиг влево
>> — сдвиг вправо
>>> — беззнаковый сдвиг
вправо
Эти операции сдвигают значение своего левого операнда на число бит, заданное правым операндом.
Условная операция
<условие> ? <выражение1> :< выражение2>
-Если <условие> истинно, то результатом будет < выражение1>, иначе < выражение2>.
-Например, int x = a < b ? a : b вычисляет минимум из a и b.
Старшинство операций
Постфиксные
Префиксные, дополнение ~, отрицание!
Приведение типа
*, /, %
+ и –
Сдвиги
Сравнения > < >= <=
Сравнения ++ !=
Побитовая коньюнкция &
Побитовая дизъюнкция |
Коньюнкция &&
Дизъюнкция ||
Условная операция ?:
Примитивные типы данных
Java – язык со строгой типизацией. Определяется восемь примитивных типов данных: byte, short, int, long, char, float, double, boolean. Их можно разделить на четыре группы.
Целые (Integers) – группа включает типы byte, short, int и long, которые являютсяполнозначными целыми числами со знаком.
Числа с плавающей точкой, вещественные (Floqting-point number) – группа включает в себя типы float и double, которые представляют числа с дробной точностью.
Символы (Characters) – группа включает тип char, который представляет символы в наборе символов, подобные буквам и цифрам.
Логические или булевские (Boolean) – группа включает тип Boolean, который является спец. типом для представления значений true/false.
Целые типы
Все они со знаками – положительные и отрицательные значения.. (long – 64, int – 32, short – 16, byte – 8)
Типы с плавающей точкой
float – 32, тип с одинарной точностью
double – 64, тип с двойной точностью
Символьный тип
Для представления символов в Java используется Unicode, который определяет полный набор интернациональных символов (char - 16). Диапазон от 0 до 65536. Используется для создания глобальной мобильности языка.
Переменные типа chsr, хотя и не являются числами, но с ними тоже можно проделывать операции сложения и т.д.
Булевский тип
Используется для логических значений, он может иметь только одно значение из двух возможных true и false