
- •1. Жизненный цикл приложения Java. Компиляция. JiTкомпиляция. Исполнение.
- •2. Классы. Абстрактные классы. Интерфейсы. Наследование.
- •3. Классы и интерфейсы стандартной библиотеки. Списки. Сортировка.
- •4. Классы и интерфейсы стандартной библиотеки. Ассоциированные массивы. Словари.
- •5. Классы и интерфейсы стандартной библиотеки. Потоки ввода-вывода. Файловый ввод-вывод.
- •6. Параллельные процессы. Синхронизация.
- •Синхронизация по ресурсам и событиям
- •Синхронизация по ресурсам
- •Синхронизация по событиям
- •7. Параллельные процессы. Управление потоками.
- •Создание и запуск потока выполнения
- •Поля и методы, заданные в классе Thread
- •Важнейшие константы и методы класса Thread:
- •Важнейшие методы объектов типа Thread:
- •8. Параллельные процессы. Управление памятью потока.
- •Хранение переменных в памяти
- •Блокировки
- •9. Jdbc, драйверы строка соединения, класс DriverManager, интерфейс Connection.
- •10. Jdbc, создание sql запросов, интерфейсы Statement, PreparedStatement Класс Statement.
- •Выполнение запроса через объект Statement
- •Закрытие объектов Statement
- •11. Jdbc, обработка полученных результатов, интерфейсы ResultSet, ResultSetMetaData.
- •Строки и курсоры
- •Колонки
- •Типы данных и их преобразование
- •Использование потоков для очень больших значений
- •Значения null в результатах
- •12. Объектно-реляционное отображение. Создание персистентных классов при помощи jpa
- •13. Объектно-реляционное отображение. Подключаемы провайдеры персистенции.
- •14. Кастомизация мэппинга персистентных классов на поля и таблички бд.
- •15. Объектно-реляционное отображение. Отображение реляционных связей many-to-many, one-to-many, one-to-one.
- •16. Объектно-реляционное отображение. Жизненный цикл персистентных объектов (entity lifecycle)
- •17. Объектно-реляционное отображение. Интерфейс EntityManager.
- •18. Объектно-реляционное отображение. Создание запросов на jpql, sql
- •19. Работа с xml в Java. Правильно сформированные (well-formed) и корректные (valid) xml документы
- •Понятие корректно сформированных (well-formed) xml-документов
- •Создание действительных (valid) xml-документов. Определение типа документа (dtd)
- •20. Jaxp, основные группы api.
- •21. Работа с xml документами посредством sax.
- •22. Работа с xml документами посредством dom.
- •23. Сравнение sax и dom подходов к обработке xml документов.
- •24. Jaxb, отображение Java класса, отображаемого на xml.
- •25. Создание jaxb контекста, маршалинг и демаршалинг.
- •26. Сервлеты, создание, жизненный цикл
- •27. Http запросы get, post, put, delete, head
- •28. Интерфейс servlet, класс HttpServlet
- •29. Создание rest сервисов, jax rs
- •30. Связка jaxb и jax rs, переключение типов возвращаемого контента (xml, json)
- •33. Оптимизация jvm
22. Работа с xml документами посредством dom.
Для программной обработки XML документов используется модель XML DOM, которая определяет объекты и свойства всех XML элементов и методы (интерфейс) для доступа к ним. Иначе говоря, XML DOM описывает каким образом необходимо получать, изменять, добавлять и удалять XML элементы.
Согласно DOM:
-
все, что содержится внутри XML документа, является узлом;
-
весь документ представляется узлом документа;
-
каждый XML элемент – узел элемента;
-
текст внутри XML элементов - текстовый узел;
-
каждый атрибут - узел атрибута;
-
комментарии - узлы комментариев.
XML документ в соответствии с моделью XML DOM представляется как дерево из узлов, при этом:
-
Все узлы дерева находятся в определенных отношениях друг с другом.
-
Все узлы доступны через дерево. Их содержимое может быть изменено, удалено; новые элементы могут быть добавлены в дерево.
-
Дерево начинается с корневого узла и разветвляется вниз вплоть до текстовых узлов на самом низшем уровне дерева.
-
Все узлы находятся в иерархических отношениях между собой.
Эти отношения описываются с помощью понятий родитель, дочерний и потомок (все дочерние на одном уровне).
23. Сравнение sax и dom подходов к обработке xml документов.
В состав JAXP входят два механизма для анализа XML-данных:
- Основан на представлении документов в виде системы объектов некоторого набора классов. Эта система объектов формирует в памяти некоторую иерархическую структуру, которую можно анализировать в соответствии с прикладной задачей, модифицировать и сериализовать в XML-представление (в виде потока символов). Система объектов, в виде которых представляется XML-документ, регламентирована W3C в составе спецификации Document Object Model (DOM), а соответствующий подход к анализу называется DOM-анализ.
- Использует событийно-ориентированную модель обработки. XML-анализатор в ходе синтаксического анализа текста XML-документа вызывает для обработки тех или иных его частей, выделенных к данному моменту, специальные методы (call-back методы, методы обратного вызова) на объекте перехватчике событий (handler object), который анализатору был передан на этапе инициализации прикладной программой. Объект-перехватчик реализует прикладную логику обработки XML-данных и реализует определенный интерфейс. Соответствующий подход к анализу был разработан независимым сообществом разработчиков и называется SAX-анализом.
DOM-анализ приводит к интенсивному использованию памяти, так как весь анализируемый документ разбирается, и для него в памяти формируется дерево объектов. При этом прикладной анализ полученного дерева не может быть выполнен до того, как будет полностью построено DOM-дерево, что исключает возможность асинхронной обработки. Но плюсом DOM-анализа является возможность модификации XML-данных. При этом он оперируют объектами, а не текстовыми строками, что удобно.
SAX-анализ, в отличие от DOM, очень экономно использует память, так как для выполнения событийно-ориентированной обработки не требуется загружать весь документ в память. Кроме того, анализ документа может быть выполнен асинхронно: он может считываться блоками из потока ввода, связанного например, с сетевым сокетом, а анализ может выполняться по мере поступления блоков, выделения очередных фрагментов XML и обработки соответствующих событий. Но такая природа SAX-анализа исключает возможность модификации документа.