- веб приложение (Tomcat, Thymleaf, jQuery)
- модуль экспорта из XML (JAXB, StAX)
- многопоточный почтовый сервис (JavaMail, java.util.concurrent.*)
- связь модулей через веб-сервисы (SOAP, JAX-WS) и по REST (JAX-RS)
- сохранение данных в RMDBS (postgresql)
- библиотеки Guava, StreamEx, Lombook, Typesafe config, jDBI
Опыт программирования на Java. Базовые знания Maven.
Выбирать Ultimate, 30 days trial (работа с JavaScript, Tomcat, JSP). Персональный ключ к Ultimate (на 6 месяцев) выдается на первом занятии.
В видео в
LazySingletonошибка: должно быть как в коде проектаinstance == null
- JVM изнутри - оптимизация и профилирование.
- Stack and Heap
- Дополнительно:
- Реализация Singleton в JAVA
- Double checked locking
- Initialization-on-demand holder idiom
- Подводные камни Singleton
- Параллелизм в Java
- Монитор (синхронизация)
- Compare-and-swap
- Java Memory Model
- Синхронизация потоков
- Обзор java.util.concurrent.*
- Как работает ConcurrentHashMap
- Справочник по синхронизаторам java.util.concurrent.*
- Использование ThreadLocal переменных
- Николай Алименков — Прикладная многопоточность
- Can thread switching happen in the synchronized block?
- 1. Параллельное выполнение кода с помощью потоков
- 2. Синхронизация доступа к изменяемым объектам
- 3. Атомарные переменные и конкурентные таблицы
правка к видео:
22: completionService.submit(..)
Все изменения в проекте будут делаться на основе патчей: скачайте 1_1_MailService.patch, положите его в проект, правой мышкой на нем сделайте Apply Patch ...
- Intuit, Потоки выполнения. Синхронизация
- Алексей Владыкин, Основы многопоточность в Java
- Виталий Чибриков, Java. Многопоточность
- Computer Science Center, курс Параллельное программирование
- Юрий Ткач, курс Advanced Java - Concurrency
- Головач, курс Java Multithreading
Вычекать этот проект:
git clone https://github.com/JavaOPs/masterjava.git
- Применить оптимизацию к MatrixUtil.singleThreadMultiply
- Реализовать метод
MatrixUtil.concurrentMultiply, позволяющий многопоточно перемножать квадратные матрицы N*N. - Количество дочерних потоков ограничено
MainMatrix.THREAD_NUMBER. - Добиться того, чтобы на матрице 1000*1000 многопоточная реализация была быстрее однопоточной
возможны изменения, окончательная программа будет перед стартом курса
- Разбор ДЗ (многопоточная реализация умножения матриц)
- Java Microbenchmark JMH (от Алексея Шипилева)
- Обзор Guava
- Формат XML. Создание схемы XSD.
- Работа с XML в Java
- JAXB, JAXP
- StAX
- XPath
- XSLT
- Разбор ДЗ (работа с XML)
- Обзор StreamEx (от Тагира Валеева)
- Монады. flatMap
- SOA и Микросервисы
- Многомодульный Maven проект
- Разбор ДЗ (реализация структуры проекта, загрузка и разбор xml)
- Thymleaf
- Maven. Поиск и разрешение конфликтов зависимостей
- Логирование
- Выбор lightweight JDBC helper library. JDBI
- Tomcat Class Loader. Memory Leeks
- Разбор ДЗ (реализуем модули persist, export и web)
- Конфигурирование приложения (Typesafe config)
- Lombook
- Разбор ДЗ (доработка модели и модуля export)
- Миграция DB
- Веб-сервисы (REST/SOAP)
- Java реализации SOAP
- Имплементируем Mail Service
- Разбор ДЗ (реализация MailSender, сохранение результатов отправки)
- Стили WSDL. Кастомизация WSDL
- Публикация кастомизированного WSDL. Автогенерация.
- Деплой в Tomcat
- Создание клиента почтового сервиса
- Разбор ДЗ (отправка почты через Executor из модуля web)
- Доступ к переменным maven в приложении
- SOAP Exception. Выделение общей части схемы
- Передача двоичных данных в веб-сервисах. MTOM
- Разбор ДЗ (реализация загрузки и отправки вложений по почте)
- JAX-WS Message Context
- JAX-WS Handlers (логирование SOAP)
- Разбор ДЗ (реализация авторизации и статистики)
- JavaEE
- JAX-RS. Интеграция с Jersey
- EJB
- JMS
- Асинхронные сервлеты 3.x в Tomcat
- Maven Groovy cкрптинг (groovy-maven-plugin)
- AKKA
- Redis


