Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Заочники 2020-2021 / Билеты.docx
Скачиваний:
71
Добавлен:
15.06.2021
Размер:
1.2 Mб
Скачать

Gui Swing. Меню.

Для реализации меню используются следующие классы:

  • JMenuBar — панель меню, каждое меню определяется объектом JMenu;

  • JPopupMenu — контекстное меню;

  • JSeparator — разделитель меню;

  • JMenuItem — базовый класс для следующих трех;

  • JMenu — объект меню, используется для вложенных меню или как элемент для панели меню;

  • JCheckboxMenuItem — элемент меню в виде флажка;

  • JRadioButtonMenuItem — элемент меню в виде радио-кнопки.

Элемент меню JMenuItem создан на основе кнопки, соответственно и обработка событий такая же: обработка простых элементов меню реализуется через интерфейс ActionListener, а обработка флажков и радио элементов обычно через интерфейс ItemListener.

Билет 27.

Многопоточность в Java. Состояние потоков.

1. Новый Создан, но не запущен

2. Исполняемый Запущен start-ом и работает

3. Блокированный Ожидает события для продолжения работы («не по своей воле»)

4. Ожидающий Ожидает события для продолжения работы («по своей воле»)

5. Временно ожидающий Ожидает события или истечения заданного времени для продолжения работы

6. ЗавершенныйПрекратил существование, не занимает память

Контроль состояния потока

int getState() - получить код состояния

boolean isAlive() - узнать жив ли поток

Thread currentThread() - получить текущий поток

GUI Swing. Модальные окна.

Диалоговые (модальные) окна — блокируют исполнение программы, пока из них не будет осуществлен выход.

Классы диалоговых окон в Java

  1. JOptionPane — универсальный класс для создания диалоговых окон

  2. JFileChooser — класс для создания диалоговых окно выбора файлов

  3. JСolorChooser — класс для выбора цвета

GUI в Java. Диалоговое окно JOptionPane

  1. showMessageDialog() — метод для показа простого окна — предупреждения

  2. showOptionsDialog() — метод для показа окна с возможностью выбора вариантов

  3. showInputDialog() — метод для показа окна с возвращением значения, выбранного или введенного пользователем.

Для более сложных случаев модальных окон необходимо воспользоваться классом

JDialog, создавая от него свои диалоговые окна

Параметры JoptionPane

  1. messageType - тип иконки окна :

  2. optionType - опция определения какие кнопки отображать:

Билет 28.

Обработка исключений в Java. Блок try с параметром.

Для выделения контролируемого участка кода программы используются блоки try и catch, а для самостоятельной генерации исключения ключевое слово throw.

GUI Swing. События мыши. Перехват, обработка, привязка к компонентам

Билет 29.

Система ввода-вывода Java. Буфферизация.

Подчинение выходного потока буферизации приводит к блокировке вывода на консоль

символов с помощью метода write, однако метод println выведет данные т.е. метод

println не является буферезированным, а write – является.

Кроме того, положение вызова метода println приводит к выводу содержимого буфера

потока System.out, «заблокированного» буферизацией через переменную bos.

Размер буфера по умолчанию - 8 кб

GUI Swing. События клавиатуры. Перехват, обработка, привязка к компонентам

public class AL extends KeyAdapter{

public void keyPressed(KeyEvent e) {

paddle1.keyPressed(e);

paddle2.keyPressed(e);

}

Билет 30.

Система ввода-вывода Java. Классы и методы работы с файлами.

Для работы с файлами определены классы FileReader и FileWriter. FileReader создает (открывает) поток чтения из файла, однако метод read() будет возвращать только целочисленное представление байта, которое надо преобразовать (привести к типу char), чтобы получить символ.

Чтобы читать файл построчно поток из файла нужно передать, как аргумент в конструктор объекта класса работы с символьными потоками — BufferedReader, который имеет метод чтения строк — readLine().

Класс Scanner доступен только с версии java 5.0. Класс предназначен для упрощения работы с операциями ввода в случае, когда требуется разделять входные данные по какому-то правилу и подключается инструкцией import java.util.Scanner. Класс Scanner может работать как с символьными, так и с байтовыми потоками.

РВ в Java. Классы символов. Применение.

Класс символов – набор символов в [ ], определяющий сопоставление одного символа в интерпретируемой строке.

Билет 31.

Система ввода-вывода Java. Перехват исключений.

РВ в Java. Квантификаторы. Применение.

Квантификаторы определяют количество повторений

Билет 32.

Многопоточность в Java. Класс Thread и интерфейс Runnable. Их свойства и методы.

Способы создания потоков в Java

1. Создать объект класса, реализующего интерфес Runnable

2. Создать объект класса, расширяющего класс Thread

Независимо от способа 1 или 2 внутри класса должен быть определен метод run, который является аналогом метода main и с которого начинается выполнение программного кода класса данного потока.

Отличие способов «Runnable» от «Thread»

1. При имплементации Runnuble, необходимо иметь внутри переменную типа Thread для запуска потока.

2. При наследовании от Thread, для манипулирования потоком можно обращаться к this

3. При имплементации Runnuble больше возможностей манипуляции с потоком, но она более сложна

  • join() - ожидать завершения

  • join(long mills) — ожидать до завершения или истечения mills миллисекунд

  • join(long mills, long nanos) - ожидать до завершения или истечения mills миллисекунд

  • и nanos наносекунд

  • interrupt() - установить флаг прерывания

  • isInterrupted() — проверить флаг перывания

  • iterrupted() - проверить и сбросить флаг прерывания

РВ в Java. Группы. Применение.

Группы (capturing groups) позволяют трактовать последовательность символов как единое целое.

Все совпадения групп сохраняются в специальном массиве $ и нумеруются так:

  • $0 — содержит все совпадение целиком

  • $1 — первое совпадение,

  • $2 — второе и т. д.

Билет 33.

Многопоточность в Java. Взаимодействие потоков. Синхронизация. Синхронизирпованные методы и блоки кода.

Состояние «гонок» возникает, когда несколько потоков обращаются к одному и тому-же объекту (данным)

Это может привести к повреждению данных. Например, если использовать два потока для копирования символов из файла «A» в файл «B», то в результате в файле «B» символы будут перемешаны.

Это означает, что требуется создать механизмы синхронизации такие, чтобы потоки могли управлять общими ресурсами т. е. действовать синхронно.

Требование синхронности обязывает ввести в язык конструкции, которые бы могли приостанавливать поток до исполнения некоторого условия (или промежутка времени) и запускать потоки при его исполнении, а также конструкции, которые бы показывали — какой код (данные) внутри класса следует сделать не исполняемым (заблокированным) до исполнения условия.

В Java для этого используется ключевое слово synhronized и методы join(), wait(), notify() и notifyAll().

Эти методы определены на уровне объекта Object, поэтому все объекты в Java могут быть использованы для работы в многопоточном режиме.

Состояние «блокировки» означает, что некоторые ресурсы потока, заняты (используются) другим потокам и поэтому никакой другой поток не может их использовать, пока поток, который их заблокировал, их не освободит.

1. Только один поток может владеть блокировкой

2. Любой объект может служить (быть источником) блокировки

3. Снятие блокировки производится автоматически

Т.е. блокировка возникает при передаче управления внутрь блока кода или метода «помеченного» словом synhronized

За соблюдением блокировки следит специальная встроенный в каждый объект Java механизм, называемый монитором. Монитор контролирует доступ к объекту. Если объект заблокирован одним потоком, то он недоступен другим потокам.

РВ в Java. Замена символов в строках.

Замены выполняются с помощью следующих методов класса Matcher

replaceFirst() - замена первого совпадения

replaceAll() - замена всех совпадений

Билет 34.

Многопоточность в Java. Взаимодействие потоков с помощью методов: wait, notify, notifyAll.

Перевод потока в режим ожидания

  • wait() - переводит поток в режим ожидания до получения уведомления

  • wait(long ms) — тоже или по истечении ms миллисекунд

  • wait(long ms, ns) — тоже или по истечении ms миллесекунд и ns - наносекунд

wait бросает InterruptedException

Перевод потока из режима ожидания в режим исполнения

  • notify() - запускает к выполнению следующий ожидающий поток

  • notifyAll() - запускает к выполнению поток с наивысшим приоритетом

Ожидающие разблокировки потоки получают информацию о том, что потока ресурс освобожден, тогда, когда внутри него вызывается метод notify() (или notifyAll() )

РВ в Java. Предусловия и постусловия. Применение.

Билет 35.

Регулярные выражения (РВ) в Java. Принцип работы РВ. Классы работы с РВ в Java и их методы и флаги.

Регулярные выражения – это специальные правила создания шаблонов обработки для строк.

Шаблоны регулярных выражений (regex или regexp) позволяют производить сложный поиск (единичный и групповой) и замену подстрок.

Для работы c регулярными выражениями используется пакет: java.util.regex

Основные понятия регулярных выражений

Pattern – объект-шаблон, представляющий регулярное выражение, которое будет сравниваться со строкой

Matcher – объект, интерпретирующий шаблон и выполняющий операции над строками

PatternSyntaxException – не контролируемое исключение, возникающее при ошибке в шаблоне

Класс символов – набор символов в [ ], определяющий сопоставление одного символа в интерпретируемой строке.

Соседние файлы в папке Заочники 2020-2021