
- •Вопрос 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. Сериализация объектов.
Минусы программирования на Java
Платное коммерческое использование
Недавно Oracle объявила, что с 2019 года компания начнет взимать плату за использование Java Standard Edition 8 в «коммерческих целях». За все новые обновления и исправления ошибок придется заплатить. Плата зависит от количества пользователей или компьютеров.
Текущая версия Java бесплатна для простого использования. Таким образом, каждая использующая Java компания должна оценить, насколько эффективно она использует Java. Компания должна понять, что выгоднее: искать альтернативное решение или продолжать пользоваться Java.
Низкая производительность
У любого языка высокого уровня довольно низкая производительность из-за компиляции и абстракции с помощью виртуальной машины. Однако это не единственная причина низкой скорости Java. Например, приложение очистки памяти: это полезная функция, которая, к сожалению, приводит к значительным проблемам с производительностью, если требует больше 20 процентов времени процессора. Плохая настройка кэширования может вызвать чрезмерное использование памяти. Существует также взаимная блокировка потоков: так происходит, когда несколько потоков пытаются получить доступ к одному и тому же ресурсу. В этом случае происходит кошмар каждого Java-разработчика — ошибка из-за нехватки памяти. Тем не менее умелое планирование может решить все эти проблемы.
Отсутствие нативного дизайна
Для создания графического интерфейса пользователя (GUI) разработчики используют различные инструменты, ориентированные для конкретного языка. Для Android-приложений есть Android Studio, которая помогает создавать приложения с нативным дизайном. Однако, когда дело доходит до пользовательского интерфейса на ПК, Java-инструмента для создания нативного дизайна нет.
Многословный и сложный код
Многословность кода может показаться преимуществом, которое поможет при изучении языка. Однако, длинные, чрезмерно сложные предложения затрудняют чтение и просмотр кода. Как и естественные языки, многие языки программирования высокого уровня содержат лишнюю информацию. Java — это более легкая версия неприступного C ++, которая вынуждает программистов прописывать свои действия словами из английского языка. Это делает язык более понятным для неспециалистов, но менее компактным.
Принципы ооп:
Наследование
Наследование — механизм, который позволяет описать новый класс на основе существующего (родительского). При этом свойства и функциональность родительского класса заимствуются новым классом.
Абстракция
Абстракция означает выделение главных, наиболее значимых характеристик предмета и наоборот — отбрасывание второстепенных, незначительных.
Инкапсуляция
Инкапсуляция в Java означает ограничение доступа к данным и возможностям их изменения.
Полиморфизм
Полиморфизм — это возможность работать с несколькими типами так, будто это один и тот же тип. При этом поведение объектов будет разным в зависимости от типа, к которому они принадлежат.
Вопрос 2 Примитивные типы Java. Область видимости и время жизни объектов.
В Java есть 8 примитивных типов, которые делят на 3 группы, вот они:
Целые числа — byte, short, char, int, long
Числа с плавающей точкой (иначе дробные) — float, double
Логический — boolean