
- •Вопрос 1. История языка программирования Java. Достоинства и недостатки языка. Основные особенности. Жизненный цикл программы на Java. Краткая теория: особенности и сферы применения Java
- •Особенности языка Java
- •Плюсы программирования на Java
- •Объектно-ориентированное программирование
- •Java — язык высокого уровня с простым синтаксисом и плавной кривой обучения
- •Стандарт для корпоративных вычислительных систем
- •Безопасность
- •Независимость от платформы («Написать один раз и использовать везде»)
- •Автоматическое управление памятью
- •Многопоточность
- •Стабильность и сообщество
- •Минусы программирования на Java
- •Платное коммерческое использование
- •Низкая производительность
- •Отсутствие нативного дизайна
- •Многословный и сложный код
- •Принципы ооп:
- •Вопрос 2 Примитивные типы Java. Область видимости и время жизни объектов.
- •Область видимости и время жизни переменных.
- •Область видимости и время жизни объектов
- •Вопрос 3. Классы и объекты. Структура класса. Конструкторы класса
- •Конструкторы
- •Вопрос 4. Модификаторы доступа
- •Инкапсуляция
- •Вопрос 5. Ключевое слово this
- •Вопрос 7. Операции. Литералы. Операторы Литералы
- •Операции
- •Переопределение методов
- •Вопрос 9. Полиморфизм. Перегрузка и переопределение.
- •Вопрос 10. Ключевое слово final. В java есть ключевое слово – final. Оно может применяться к классам, методам, переменным (в том числе аргументам методов).
- •Вопрос 11. Абстрактные классы и методы
- •Вопрос 12. Интерфейсы
- •Методы по умолчанию
- •Статические методы
- •Приватные методы
- •Статические вложенные классы
- •Внутренние классы
- •Локальные классы
- •Анонимные классы
- •Вопрос 14. Коллекции объектов в Java. P.S. Взято из лекции
- •Вопрос 15. Итераторы Взято из лекции
- •Вопрос 16. Интерфейсы Comparable, Comparator. Назначение, примеры
- •Вопрос 17. Обработка исключений. Поведение программы при возникновении исключения. Структура и использование блока перехвата исключений.
- •Поведение программы при появлении исключения
- •Обработка исключений. Структура и использование блока перехвата исключений.
- •Вопрос 18. Классы исключительных ситуаций. Блок finally
- •Классы исключительных ситуаций:
- •Блок finally
- •Вопрос 19. Генерация исключительных ситуаций. Создание собственных классов исключительных ситуаций. Исключительные ситуации и наследование Генерация исключительных ситуаций
- •Создание собственных классов исключительных ситуаций
- •Исключительные ситуации и наследование
- •Вопрос 20. Ввод/вывод (I/o) в Java
- •Иерархия InputStream
- •Иерархия Reader
- •Иерархия OutputStream
- •Иерархия Writer
- •Класс RandomAccessFile
- •Класс File
- •Вопрос 21. Сериализация объектов.
Вопрос 16. Интерфейсы Comparable, Comparator. Назначение, примеры
Для реализации задания порядка существуют 2 интерфейса:
Comparable предназначен для определения естественного порядка, определенном в пакете java.lang. Данный интерфейс имеет 1 метод: compareTo(Object obj) - сравнивает один объект с другим.
Пример:
public class A implements Comparable {
String name;
…
public int compareTo(Object obj) {
return name.compareTo(((A)obj).name;
}
}
Недостаток данного интерфейса - можно задать только 1 порядок.
Comparator предназначен для упорядочения набора данных. Он содержит описание 2 методов:
public int compare (Object obj1, Object obj2)
public boolean equals(Object obj) - используется для сравнения самих компараторов, его не нужно определять.
Пример:
Вопрос 17. Обработка исключений. Поведение программы при возникновении исключения. Структура и использование блока перехвата исключений.
Когда возникает исключение? - Порождается объект, который связан с этим исключением, соответственно, этот объект является объектом некоторого класса исключительных ситуаций. Каждая исключительная ситуация имеет своё имя, и это имя - имя класса, в котором хранится вся информация об этом исключении.
Используя методы, которые есть в классах исключений, мы можем вывести информацию о том, какая исключительная ситуация возникла. Аппарат исключений является средством обработки ошибок, то есть с его помощью мы можем систематизировать и упростить обработку ошибок, но исключения не стоит применять для того, чтобы каким-либо образом построить логику программы. То есть не следует генерировать какое-либо исключение, допустим, при событии нажатия на клавишу или клик мыши, такие события нужно обрабатывать программно, без генерации исключения. Исключения нужны для того, чтобы не завершать в некоторых ситуациях аварийную работу приложения, а просто вывести предупреждение или ошибку и продолжить работу.
Существует 2 вида генерации исключения:
Автоматическая генерация - происходит тогда, когда JVM обнаруживает некоторую ошибку, например деление на ноль или приведение типов данных, и соответственно, сама машина генерирует это исключение;
Явная программная генерация - т.е. в коде самостоятельно можете выбросить исключение при помощи ключевого слова throw, т.е. при его использовании создаём новый объект, допустим:
throw new IllegalArgumentException(“Список параметров неверный”);
То есть по названию исключения понятно, что ошибка в параметрах, и мы можем в качестве параметра, когда создаём объект, передать какое-либо текстовое сообщение. При генерации исключения мы порождаем объект класса нужной нам исключительной ситуации.
Поведение программы при появлении исключения
И при автоматической, и при программной генерации исключения выполнение текущего потока команд программы прекращается. Например, если поставить оператор сразу после оператора throw, то такой оператор не выполнится.
Но исключения можно перехватить. Перехват осуществляет при помощи try-catch блока, но если не предпринять никаких действий по перехвату исключения, то выполнение текущего потока команд прекратится, и будет выдано системное сообщение на консоль.
В простом случае генерация какого-либо исключения приведёт к прекращению выполнения самой программы, но если программа многопоточная и в каком-то из потоков возникает исключение, то будет остановлен только этот поток, и любая диалоговая программа не завершится при возникновении исключения, даже если его не перехватить, т.е. просто выводится сообщение на консоль, что есть какие-то проблемы.
Если в том методе, где нет блока перехвата, произойдет какое-либо исключение, то этот метод прекратит свою работу. Также и с цепочкой методов: если этот метод вызывается каким-либо другим методом, то этот метод также прекратит свою работу, если в нем также нет блока перехвата. Это будет продолжаться до тех пор, пока не будет обнаружен блок перехвата или пока не закончится цепочка вызванных методов.