- •Понятие потока данных в java. Виды потоков:
- •Общая схема записи данных в поток:
- •Общая схема чтения данных из потока:
- •Байтовый поток :свойства, связь потока с файлом, чтение, запись закрытие:
- •Потоки символов: свойства, связь потока с файлом, чтение, запись, закрытие:
- •Потоки строк: свойства, связь потока с файлом, чтение, запись, закрытие:
- •Исключения при работе с потоками:
- •Понятие рекурсии, рекурсивное вычисление факториала:
- •Понятие рекурсии, рекурсивное вычисление суммы элементов массива:
- •Понятие рекурсии, рекурсивное вычисление максимального элемента массива:
- •Формулировка задачи о ханойских башнях:
- •Применение рекурсии при определении связного списка:
- •Понятие списка. Объявление элемента списка:
- •Структура объявления двусвязного списка:
- •Типовые операции для односвязных списков:
- •Кольцевой и двусвязный списки: отличия от односвязного списка:
- •Порядок добавления элемента в односвязный список:
- •Основные типы коллекций, имеющиеся в Java Collection Framework:
- •Составные части jcf и их назначение:
- •Назначение интерфейсов и алгоритмов jcf:
- •Примеры (двух) интерфейсов и (двух) реализаций: сходства и различия:
- •Преимущества, получаемые от применения jcf в программах:
- •Коллекции: списки – основные методы интерфейса List:
- •Коллекции: множества – основные элементы интерфейса Set:
- •Выполнение стандартных операций теории множеств:
- •Списки и множества: сходства и различия:
- •Цикл for-each и его применение в коллекциях:
- •Математическая идея, представленная элементом Map:
- •Вопрос 29. Сравнительный анализ реализаций ArrayList и LinkedList.
- •Вопрос 30. Параметры по которым сравнивают реализации коллекций.
- •Вопрос 31. Понятие и назначение итератора
- •Вопрос 33. Comparable и Comparator
- •Вопрос 34. Сортировка со стандартным и нестандартным отношением порядка.
- •Вопрос 35. Вопрос 36. Вопрос 37. Вопрос 38 Поиск элемента в коллекции. Двоичный и прямой поиск. Способ идентификации ситуации «Элемент не найден».
- •Вопрос 39. Графический интерфейс пользователя. Составные элементы фрейма.
- •Вопрос 40. Библиотеки Java, поддерживающие графический интерфейс.
- •Вопрос 41. Компонент и контейнер.
- •Вопрос 42. Jframe — в иерархии объектов графики.
- •Ответы к экзамену по программированию часть 5 (вопр. 57-69)
- •События мышки. Общая схема обработки событий мышки:
- •Методы интерфейса MouseListener и их назначение:
- •Методы интерфейса MouseMotionListener:
- •Методы класса MouseEvent. Получение координат события:
- •Управляющие элементы графического интерфейса – внешний вид и назначение:
- •Кнопка. Состояния кнопки. События кнопки, их обработка и идентификация:
- •Структура программы, имеющей интерфейс с двумя кнопками:
- •Элементы интерфейса «Условие» («флажок») и его конструкторы:
- •События элемента «флажок» и их обработка.
- •Структура программы с интерфейсом, содержащим два элемента «условие»:
- •67. Элемент интерфейса «радиокнопка» и его конструкторы:
- •Группировка радиокнопок и задание начального состояния в группе.
- •События элемента «радиокнопка» и их обработка.
Потоки символов: свойства, связь потока с файлом, чтение, запись, закрытие:
Потоки символов определены в двух иерархиях классов. Наверху этой иерархии 2 абстрактных класса: Reader и Writer. Они обрабатывают потоки символов Unicode.Считывается не байт, а символ.
Класс Reader - абстрактный класс, который определяет модель поточного символьного ввода.
Методы:
Int read() – возвращает целочисленное представление следующего доступного символа из вызывающего входного потока. Если поток пуст( нету символов для чтения) возвращает -1.
Int read (char A[])- читает до А.length символов в массиве А и возвращает фактическое число символов, которые успешно прочитались. Когда встречается признак конца файла возвращает -1.
Класс Writer- абстрактный класс, который определяет модель поточного символьного вывода.
Методы:
Void close()- закрывает выходной поток
Void write (int c)- записывает оин символ в выходной поток вызывающего обьекта
Void write( char A) - записывает заполненный массив символов в вызывающий выходной поток
Void write (String str)-записывает строку в вызывающий выходной поток
Класс FileReader–создает Reader-обьект , который можно использовать для чтения содержимого файла. Обычно используемые конструкторы :
FileReader (String filePath)-выбрасывает исключение типа FileNotFoundException, filePath- полное имя файла
FileReader (File fileObj)- выбрасывает исключение типа FileNotFoundException, fileObj – обьект класса File, который описывает файл.
Классы BufferedReader, BufferedWriter, PrintWriter
Примеры обьявления:
FileReader inputStream = null;
FileWriter outputStream = null;
inputStream = new FileReader ( "input.txt" );
outputStream = new FileWriter ( "output.txt" );
Потоки строк: свойства, связь потока с файлом, чтение, запись, закрытие:
Текстовые потоки в java это буферизированные потоки символов с именами BufferdReader, PrintWriter. Содержат кроме обычных методов операции readLine (ввод строки) и println (вывод строки). Текстовые потоки используются для работы с данными, которые состоят из символов.
Связь потока с файлами:
Объявление вводного потока input типа BufferedReader:
Input= new BufferedReader(newFileReader(“..txt ”));
Конструктор класса BufferedReader требует в качестве параметра символьный файловый поток, который связан с файлом обычном образом.
Объявление выводного потока output типа PrintWriter
Output =newPrintWriter(“….txt”);
Обработка строк текстового файла, не представляющих числовые данные, обычно состоит из следующих действий:
-ввод строки из файла при помощи метода readLine
-разделение строки на слова
-обработка слов строки
Обработка числовых данных в свободном формате отличается от обработки текстовых строк только тем, что после разделения строки на слова слово преобразуется в число подходящим методом. Методы находятся в классах-оболочках стандартных типов. Например метод parseDouble(word) класса double. Возвращает double значение для строки word.
Исключения при работе с потоками:
Исключения в языке java- это объект, который описывает исключительную ситуацию, произошедшую в некоторой части кода. Когда создается исключительная ситуация, создается обьект, представляющий это исключение, и «вбрасываются» в метод, вызвавший ошибку. В свою очередь, метод может выбрать, обрабатывать ли исключение самому или передать его куда то еще. В любом случае, в некоторой точке исключения «захватываются» и обрабатываются.
Обработка исключений в java управляется с помощью 5 ключевых слов - try, catch, throw, throws, finally.
Программные операторы, которые нужно контролировать относительно исключений, содержаться в блоке try. Если в блоке try происходит исключение, то говорят, что оно выброшено (thrown) этим блоком. Оператор catch перехватывает исключение и обрабатывает его.
Общая форма блока обработки исключений:
Try{//блок кода для контроля над ошибками
}
Catch(ExceptionType1 e){
//обработчикисключенийдля ExceptionType1
}
Catch(ExceptionType2 e){
//обработчикисключенийдля ExceptionType2
}
Finally{
//блок кода для обработки перед возвратом из Try блока
}
При чтении из файлов возможны следующие исключения:
-поток пуст
-не открытый/закрытый поток и т.д.