
- •§1. Лексика языка
- •§2. Типы данных
- •§3. Ссылочный тип
- •3.1. Понятие ссылочного типа данных
- •§4. Класс String
- •§6. Массивы
- •§7. Коллекции, списки, итераторы
- •§8. Поток управления
- •.1. Кодировка
- •Пробелы
- •Комментарии
- •Лексемы
- •Понятие ссылочного типа данных
- •3.2. Преобразование ссылочных типов (расширение и сужение)
- •§4. Класс String
- •§6. Массивы
- •8.1. Условные операторы
- •8.2. Неопределенные циклы
- •8.3. Определенные циклы
- •Многовариантное ветвление – оператор switch
- •Прерывание потока управления
- •Ветвления
§1. Лексика языка
Лексика описывает, из чего состоит текст программы, каким образом он записывается, и на какие простейшие слова (лексемы) компилятор разбивает программу при анализе. Лексемы (или tokens в английском варианте) – это основные "кирпичики", из которых строится любая программа на языке Java. Эта тема раскрывает многие детали внутреннего устройства языка, и невозможно написать ни одной строчки кода, не затронув ее [1, 3].
§2. Типы данных
Java является строго типизированным языком. Это означает, что любая переменная и любое выражение имеют известный тип еще на момент компиляции. Такое строгое правило позволяет выявлять многие ошибки уже во время компиляции. Компилятор, найдя ошибку, указывает точную строку и причину ее возникновения, а динамические "баги" необходимо сначала выявить тестированием, а затем найти место в коде, которое их породило. Все типы данных разделяются на две группы. Первую составляют 8 простых или примитивных (от английского primitive) типов данных. Они подразделяются на три подгруппы:
§3. Ссылочный тип
3.1. Понятие ссылочного типа данных
Выражение ссылочного типа имеет значение либо null, либо ссылку, указывающую на некоторый объект в виртуальной памяти JVM. Объект (object) – это экземпляр некоторого класса или экземпляр массива. Класс – это описание объектов одинаковой структуры, и если в программе такой класс используется, то описание присутствует в единственном экземпляре. Объекты всегда создаются с использованием ключевого слова new, причем одно слово new порождает строго один объект (или вовсе ни одного, если происходит ошибка).
§4. Класс String
Строки – последовательность символов. В языке Java нет встроенного типа для строк. Вместо этого стандартная библиотека содержит встроенный класс String. Каждая строка, заключенная в кавычки, представляет собой экземпляр класса String. Экземпляры только этого класса можно создавать без вызова ключевого слова new.
§6. Массивы
В отличие от обычных переменных, которые хранят ровно одно значение, массивы (arrays) используются для хранения целого набора значений. Количество значений в массиве называется его длиной, сами значения – элементами массива. Элементы не имеют имен, доступ к ним осуществляется по номеру индекса. Если массив имеет длину n, отличную от нуля, то корректными значениями индекса являются числа от 0 до n-1. Все значения имеют одинаковый тип, и говорится, что массив основан на этом базовом типе. Массивы могут быть основаны как на примитивных типах, так и на ссылочных. Базовый тип может также быть массивом. Таким образом конструируется массив массивов, или многомерный массив.
При объявлении массива сначала указывается базовый тип, затем идет имя переменной, а пара квадратных скобок указывает, что используемый тип является именно массивом.
§7. Коллекции, списки, итераторы
В Java получили широкое использование коллекции (Collections) – “умные” массивы с динамически изменяемой длиной, поддерживающие ряд важных дополнительных операций по сравнению с массивами. Базовым для иерархии коллекций является класс java.util.AbstractCollection. В общем случае класс коллекции не обязан быть потомком AbstractCollection – он может является любым классом, реализующим интерфейс Collection. Основные классы коллекций: