- •8.Исключения: понятие исключения; классы исключений; необходимость обработки исключений.
- •9.Исключения: операторы языка Java, используемые для обработки исключений.
- •10.Исключения: организация обработки исключений; определение собственных исключений.
- •11.Ввод/вывод в Java: основные понятия.
- •12.Ввод/вывод в Java: основные группы классов и интерфейсов пакета java.Io.
- •13.Классификация программ по типу исполнения (компилируемые, интерпретируемые, исполняемые на виртуальных машинах). Виртуальная машина Java. Jit-компиляция.
- •14.Хранение данных в памяти эвм.
- •15.Приведение типов (явное и автоматическое). Константы и переменные.
- •16. Оператор присваивания. Порядок действий (приоритет операторов).
- •17. Арифметические операторы. Операторы инкремента и декремента.
- •18. Операторы сравнения и логические операторы.
- •19. Операторы ветвления. Условный оператор. Минимизация количества проверок.
- •Условный оператор if
- •Условный оператор if-else
- •20. Операторы ветвления. Оператор множественного выбора. Его сравнение с условным оператором.
- •21. Встроенный класс String. Строковые операции.
- •22. Стандартные потоки ввода-вывода. Организация ввода и вывода данных. Класс Scanner.
- •23. Операторы организации циклов. Цикл типа «n раз».
- •24. Операторы организации циклов. Цикл типа «пока» (с пред- и постпроверкой условия).
- •25. Массивы. Способы объявления и инициализации массивов. Индексация и размер массива.
- •26. Массивы. Алгоритмы сортировки.
- •27. Массивы. Многомерные массивы.
- •28. Статические методы классов. Методы функционального и процедурного типа.
- •29. Сигнатура метода. Перегрузка методов.
- •30. Процедурное программирование. Объектно ориентированное программирование. Сравнение парадигм.
- •31.Иерархия классов Java. Коренной класс Object и его методы.
- •32. Исключительные ситуации. Обработка исключительных ситуаций.
- •33. Приложения с графическим интерфейсом с использованием gui-пакетов и апплеты.
- •Локальные классы (local classes)
- •Объявление локальных классов
- •Доступ к переменным в локальных классах
- •Анонимные классы (Anonymous Classes)
- •Объявление анонимных классов
- •Синтаксис анонимных классов
- •Interface имя {
- •39.Типы-перечисления. Поля и методы типов-перечислений. Аннотации. Объявление типа аннотации и его использование. Аннотации для компилятора.
- •Синтаксис
- •Документация
- •Аннотации, используемые компилятором
- •Классы-коллекции
- •Интерфейсы-коллекции
- •Интерфейс Collection
- •Интерфейс List
- •Интерфейс Set
- •Интерфейс Queue
- •Иерархия классов-коллекций
- •Класс Vector
- •Класс ArrayList
- •Класс Stack
- •Паттерн проектирования Iterator
- •Класс LinkedList
- •Классы-множества
14.Хранение данных в памяти эвм.
Память современной ЭВМ строится в виде многоступенчатой иерархической системы.В иерархию памяти ЭВМ обычно входят: внешняя память очень большой ёмкости, внутренняя, или оперативная, память; сверхоперативная память; регистры; постоянная память); буферная память как промежуточное звено при обмене между ЗУ различных уровней памяти ЭВМ.
Существенное ускорение вычислительного процесса за счёт уменьшения числа обращений к главнойпамяти может быть достигнуто использованием так называемой магазинной (гнездовой, стековой) памяти,представляющей собой набор отдельных словарных регистров, одноимённые разряды которых соединенымежду собой цепями сдвига. Применение магазинной памяти приводит также к уменьшению места,отводимого в главной памяти для хранения программ, и позволяет избегать запоминания содержимогорегистров в главной памяти при переходе к подпрограммам или при прерывании данной программывнешними сигналами.
15.Приведение типов (явное и автоматическое). Константы и переменные.
При всём многообразии типов часто возникают ситуации, когда данные одного типа нужно преобразовать к другому типу.
Некоторые преобразования происходят неявно. Рассмотрим такой пример:
double a = 3;
System.out.println(a); // выведет 3.0
Переменная типа double предусматривает хранение не только целой, но и десятичной части числа, т.е. фактически в переменную запишется значение 3.0 (три целых и ноль десятых), которое потом и выведется на экран с помощью следующей команды.
Java преобразовала 3 в 3.0 (целые в вещественные) самостоятельно, без явного участия разработчика. Такое преобразование (или, как ещё говорят, приведение) типа данных называется неявным или автоматическим.
Оно происходит всякий раз, когда в процессе преобразования не могут потеряться какие-либо данные.
Но потеря может происходить, когда мы попытаемся, например, из вещественного числа получить целое. Это можно сделать округлив число или взяв только его целую часть. Но дробную часть при этом придётся забыть, и, если она не была нулевой, то какие-то полезные данные могут потеряться.
Например, если мы произведём следующее присваивание, то при попытке откомпилировать программу получим такую ошибку от отладчика «возможна потеря точности»:
int a = 3.14; // ошибка possible loss of precision
Но даже если десятичная часть была бы нулевой (справа стояло бы значение 3.0), то мы получили бы ту же ошибку. То есть Java не занимается анализом самого значения, а обращает внимание только на его тип.
Тем не менее, преобразовать вещественное значение к целому мы всё таким можем, явно сообщив в программе о своём намерении. Для этого слева от исходного элемента надо в круглых скобках указать название типа, к которому его нужно привести.
int a = (int) 3.14;
System.out.println(a); // выведет 3
Такое преобразование с указанием целевого типа называется явным.
Явное преобразование вещественного значения к целому типу происходит за счёт отбрасывания десятичной части (берётся только целая часть).
double b = 2.6;
int c = (int) (0.5 + b); // можно применять к целым выражениям
System.out.println(c); // выведет 3
System.out.println((int)9.69); // выведет 9
System.out.println((int)'A'); // выведет 65 — код символа «A»
System.out.println((double)3); // выведет 3.0
Явное преобразование может потребоваться также в тех случаях, когда значение типа позволяющего хранить большее количество знаков надо привести к типу, способному хранить меньшее количество знаков числа. Например, когда long надо преобразовать к short. О том, как происходят такие преобразования, будет рассказано далее при обсуждении принципов хранения данных в памяти компьютера.