
- •2. Типы данных. Понятия переменной, простейшие типы, ссылочные типы, класс Class.
- •3. Имена. Пакеты. Система именования элементов языка в Java. Область видимости имени.
- •4. Объявление классов. Система разграничения доступа в Java. Поля, методы, конструкторы и инициализаторы класса.
- •5. Методы класса. Перегрузка методов. Правила передачи параметров различных типов. Метод main().
- •7. Наследование, инкапсуляция, полиморфизм. Абстрактные методы и классы, интерфейсы
- •8.Интерфейсы и внутренние классы.
- •9.Параметризованные классы и методы.
- •10. Статические элементы класса. Принципы работы полиморфизма для полей и методов, статических и динамических.
- •11.Обработка строк в Java. Классы String, StringBuilder, StringBuffer. Форматирование и анализ. Регулярные выражения.
- •12.Массивы. Инициализация массива, создание и оперирование значениями массива. Преобразование типов, одномерные и многомерные массивы, механизм клонирования в Java.
- •13.Операторы и структура кода. Управление ходом выполнения программы.
- •19. Пакет java.Util, контейнеры или классы-коллекции. Списки, множества, карты отображений.
- •22. Пакет java.Net, введение в сетевые протоколы, стек протоколов tcp/ip, протоколы tcp и udp. Соединение через высокоуровневые протоколы.
19. Пакет java.Util, контейнеры или классы-коллекции. Списки, множества, карты отображений.
Коллекции – это хранилища, поддерживающие различные способы накопления и упорядочения объектов с целью обеспечения возможностей эффективного доступа к ним. Три основные операции: - добавление нового элемента в коллекцию; - удаление элемента из коллекции;- изменение элемента в коллекции.Пример: стек (структура LIFO – Last In First Out); очередь (структура FIFO – First In First Out) Списки: класс ArrayList<E> – динамический массив объектных ссылок. Расширяет класс AbstractList<E> и реализует интерфейс List<E>.Конструкторы: ArrayList(),ArrayList(Collection <? extends E> c), ArrayList(int capacity). Методы: void add(int index, E element) – вставляет element в позицию, указанную в index; void addAll(int index, Collection<? extends E> c) – вставляет в список все элементы коллекции с, начиная с позиции index; E get(int index) – возвращает элемент в виде объекта из позиции index; E remove(int index) – удаляет объект из позиции index. Подходит для хранения неизменяемых списков. Для доступа к элементам - интерфейс ListIterator<E>, позволяет получить доступ в необходимую позицию списка. Коллекция LinkedList<E> реализует связанный список: хранит объекты отдельно, но вместе со ссылками на следующее и предыдущие звенья послед. Методы: void addFirst(E ob), void addLast(E ob), E getFirst(), E getLast(), E removeFirst(), E removeLast(). Очередь Queue<E>(Класс LinkedList<E>). Методы: E element() – возвращает, но не удаляет головной элемент очереди; boolean offer(E o) вставляет элемент в очередь, если возможно; E peek() – возвращает, но не удаляет головной элемент очереди, возвращает null, если очередь пуста; E poll() – возвращает и удаляет головной элемент очереди, null, если очередь пуста; E remove() – возвращает и удаляет головной элемент очереди. При реализации интерфейса Comparator<T> сортировки списка объектов. Метод: public static <T> void sort(List<T> list, Comparator<? super T> c).Множества интерфейс Set<E> объявляет поведение коллекции, интерфейс SortedSet<E>поведение набора, отсортированного в возрастающем порядке, интерфейс NavigableSet облегчает поиск. Класс HashSet<E> наследуется от AbstractSet<E> и реализует интерфейс Set<E>, используя хэш-таблицу для хранения коллекции.. Все элементы множества упорядочены посредством хэш-таблицы. Конструкторы: HashSet() HashSet(Collection <? extends E> c) HashSet(int capacity) HashSet(int capacity, float loadFactor).Карты отображений – это объект, который хранит пару “ключ-значение”. Объект можно найти по его уникальному ключу. Уникальность обеспечивается переопределением методов hashCode() и equals(). Классы: AbstractMap<K,V>( интерфейс Map<K,V>;), HashMap<K,V>(расширяет AbstractMap<K,V>, используя хэш-таблицу), TreeMap<K,V>(расширяет AbstractMap<K,V>, используя дерево) , WeakHashMap<K,V>(позволяет удалять из карты значения по ключу), LinkedHashMap<K,V>(образует дважды связанный список ключей). Интерфейсы карт: Map<K,V>– отображает уникальные ключи и значения; Map.Entry<K,V> – описывает пару “ключ-значение”; SortedMap<K,V> – содержит отсортированные ключи и значения; NavigableMap<K,V> – добавляет новые возможности поиска по ключу.
20. Пакет java.util, классы для работы с датой, классы для генерации случайных чисел. Объекты класса Random предназначены для работы с независимыми последовательностями псевдослучайных чисел. Если вам нужна последовательность типа double и вас не интересует порядок следования чисел, можно воспользоваться методом java.lang.Math.random — он создает объект Random при первом вызове и в дальнейшем возвращает псевдослучайные числа из этого объекта. Чтобы иметь больше средств для контроля за последовательностью, создайте объект Random и получайте числа от него. public Random() Создает новый генератор случайных чисел. Стартовое значение определяется на основании текущего времени. public Random(long seed). Класс Date предоставляет в распоряжение программиста механизм для вычислений, связанных с датами и временем, а также для вывода их результатов. Вы можете установить дату и определить ее, при необходимости учитывая локальный часовой пояс. Предполагается, что класс Date работает в соответствии со стандартом UTC (Coordinated Universal Time — координированное универсальное время), однако это не всегда возможно. Неточности возникают из-за механизмов обращения со временем, используемых в операционной системе. Почти все современные системы временного исчисления предполагают, что одни сутки состоят из 24*60*60 секунд. В системе UTC примерно раз в год к суткам прибавляется дополнительная секунда, называемая "переходной". Большинство компьютерных часов не обладает необходимой точностью, чтобы отражать этот факт, поэтому класс Date также не учитывает его. Некоторые компьютерные стандарты определены в GMT - это название является общеупотребительным, тогда как UT представляет собой "научное" название того же самого стандарта. Различие между UTC и UT состоит в том, что стандарт UT основан на атомных часах, а UTC - на астрономических наблюдениях. На практике отличие оказывается пренебрежимо малым. Значение, выходящее за пределы диапазона, интерпретируется правильно — например, 32 января эквивалентно 1 февраля. Диапазоны определяются следующим образом: год год после 1900, со всеми цифрами, месяц 0–11, дата день месяца, 1–31, час 0–23, минуты 0–59, секунды 0–61 (с учетом переходной секунды). Класс Date прост в использовании, но содержит много методов: public Date() Создает объект Date, соответствующий текущей дате/времени. public int Date(int year, int month, int date, int hrs, int min, sec) Создает объект Date, соответствующий заданной дате/времени. public int getDate()Возвращает число месяца.
21. Пакет java.io, работа с файлами, классы для обмена данными между потоками исполнения, InputStream и OutputStream, Reader и Writer. Консоль. Класс Scanner Потоки ввода/вывода используются для передачи данных в файловые потоки,на консоль или на сетевые соединения. Для работы с физич файлами и каталогами (директориями), расположенными на внешних носителях, в приложениях Java используются классы изjava.iO.Потоки ввода последовательности байтов являются подклассами абстрактного класса.InputStream, потоки вывода подклассами абстрактногоклассаOutputStream. При работе с файлами используются подклассы этих классов соответственно FileInputStream и FileOutputStream, конструкторы которых открывают поток и связывают его с соответствующим физическим файлом. Для чтения байта или массива байтов используются абстрактные методы read() и read(byte[] b) класса InputStream. Метод возвращает 1,если достигнут конец потока данных, поэтому возвращаемое значение имеет тип int, не byte. Абстрактный метод write(int b) класса OutputStream записывает один байт в поток вывода. Оба эти метода блокируют поток до тех пор, пока байт не будет записан или прочитан. После окончания работы поток следует закрывать с помощью метода close(), для того чтобы освободить ресурсы приложения.Для обработки символьных потоков в формате Unicode применяется отдельная иерархия подклассов абстрактных классов Reader и Writer, которые почти полностью повторяют фун-ть байтовых потоков, но являются более актуальными при передаче текстовой информации. Например, аналогом класса FileInputStream является класс FileReader. Для вывода символа (байта) или массива символов (байтов) в поток используются потоки вывода – объекты подкласса FileWriter суперкласса Writer или подклассFileOutputStream суперкласса OutputStream. Для назначения вывода текстовой информации в произвольный поток следует использовать класс PrintWriter, являющ подклассом абстрактного класса Writer. Для ввода используется подкласс Buffered Reader абстрактного класса Reader и методы read() и readLine() для чтения символа и строки соответственно.Классами, предоставл. дополнит возможности чтенияи последующей типизации информации консоли (или любого другого потока),являются java.util.Scanner и класс java.io.Console,Объект класса java.util.Scanner принимает форматированный объект(ввод) и преобразует его в двоичное представление. При вводе могут использоваться данные из любого источника, реализующего интерфейсы Readable или ReadableByteChannel.Класс определяет следующие конструкторы:Scanner(File source) throws FileNotFoundExceptionScanner(InputStream source)Scanner(ReadablEsource)Scanner(ReadableByteChannel source, String charset)где source – источник входных данных, а charset – кодировка.Объект класса Scanner читает лексемы из источника, указанного в конструкторе, например из строки или файла. Лексема – это набор данных, выдел набором разделит (по умолч пробелами). В случае ввода из консоли следует определить объект:Scanner con = new Scanner(System.in);В классе Scannerопределены группы методов,проверяющих данные заданного типа на доступ для ввода. Для проверки наличия произвольной лексемы используется метод hasNext(). Проверка конкретного типа производится с помощью одного из методов boolean hasNextТип() илиbooleanhasNextТип(int radix), где radix – основание системы счисления. Например, вызов метода hasNextInt() возвращает true, только если следующая входящая лексема – целое число. Если данные указанного типа доступны, они считываются с помощью одного из методов Тип nextТип(). Произвольная лексема считывается методом String next(). После извлеч любой лексемы текущ указатель устанавл перед следующ лексемой. Для чтения строки из потока ввода применяются методы next() или nextLine().Объект класса Scanner определяет границы лексемы, основываясь на наборе разделит. Можно задавать разделит с помощью методuseDelimiter(Pattern pattern) или useDelimiter(String pattern), где pattern содержит набор разделителей.