Java Профессионал

Обучение программированию на Java

Java — язык программирования, который занимает первое место по популярности. Он востребованный, универсальный и с большим комьюнити: если у новичка возникают проблемы, ему всегда помогут быстро найти решение. Java используется для разработки больших систем. У него простой код, который могут читать другие разработчики, но при этом он реализовывает сложные архитектурные решения.

Вы будете создавать крутые и сложные проекты, используя популярный язык Java.

Программа курса рассчитана на комплексное освоение языка Java, его синтаксиса и возможностей, практических навыков и теоретических знаний по написанию как простых приложений, так и более серьезных проектов. Таким образом вы сможете применять знания в таких более узких направлениях, как разработка мобильных программ или веб-приложений.

Длительность курса 111 часов (37 занятий). Занятия проходят в вечернее время 2-3 раза в неделю с 19:00 до 22:00 (либо с 20:00 до 23:00).

Для кого данный курс?

  • Вы знакомы с основами программирования и решили развиваться дальше в направлении Java
  • Вы хотите поменять свою сферу деятельности, переучиться и получить перспективную IT-профессию
  • Вы IT-специалист, который хочет расширить стек технологий и систематизировать свои знания
  • Вы самоучка и хотите упорядочить имеющиеся знания и получить практический опыт

Приобретаемые знания и навыки

В процессе обучения вы научитесь:

  • Писать на языке Java различные проекты
  • Создавать свой загрузчик классов
  • Разрабатывать небольшие IoC-контейнеры (маленький Spring)
  • Писать модульные тесты и работать по TDD
  • Эффективно пользоваться английским для общения с клиентами и коллегами
  • Грамотно презентовать себя работодателю

Что включает курс?

  • 37 занятий (111 часов) — от теории к практическим заданиям
  • Удобная платформа с материалами занятий
  • Опыт работы в команде
  • Контроль знаний — практические работы и тесты
  • 2 занятия по английскому, где вы определите уровень знания языка и получите набор полезной лексики для программиста
  • Урок по поиску первой работы в IT и презентации себя перед работодателем
  • Сертификат об окончании

Программа обучения

1. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА JAVA

История языка Java
Байт-код
Виртуальная машина Java (JVM)
Трансляция, интерпретация и компиляция
JIT-компиляция
JDK и его структура
Команды JDK: javac, java, appletviewer, jar (en10)
Их использование и параметры
Поиск и загрузка классов
Создание и запуск первого приложения на Java
Выход из программы и завершения ее работы
Использование IDE Eclipse/NetBeans/Intellij IDEA для создания и выполнения программ

2. ТИПЫ ДАННЫХ И ОСНОВНЫЕ ОПЕРАЦИИ С НИМИ

Алфавит языка
Комментарии
Ключевые слова
Типы данных: простые(примитивные) и по ссылке
Идентификаторы, выбор имен идентификаторов
Переменные и константы
Объявления и инициализация переменных
Область видимости и время жизни переменных
Операторы
Операции: арифметические, присваивания, отношения и логические
Преобразование и приведение числовых типов
Приоритет операций
Использование круглых скобок

3. ПОТОК УПРАВЛЕНИЯ

Составной оператор (блок)
Условный оператор и его виды
Оператор switch
Циклы: for, while, do while
Бесконечные циклы
Прерывание потока управления, метки
Оператор goto и причины почему его не следует применять

4. МАССИВЫ

Объявления и инициализация массивов, в т.ч. анонимных
Линейные массивы
Итерация по элементам массива
Массивы и присвоения
Передача и возврат массивов в/из методов
Копирование массивов
Класс Arrays: заполнение, сравнение элементов и их сортировка
Поиск в массивах
Многомерные массивы, «неравные» массивы
Методы: аргументы переменной длины
Параметры командной строки

5. СТРОКИ

Класс String. Неизменные объекты
Хранение строк в памяти
Основные операции класса String (создание, конкатенация, сравнение, поиск символов и подстрок в строках и др.). Преобразование простых типов данных
Разбивка строк: класс StringTokenizer. Переменные объекты: классы StringBuffer и StringBuilder
Основные методы. StringBuffer vs StringBuilder

6. ОСНОВЫ РАБОТЫ С СИСТЕМОЙ КОНТРОЛЯ ВЕРСИЙ

7. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ. ОБЪЕКТЫ И КЛАССЫ

Поля и методы (определение, синтаксис объявления)
Спецификаторы доступа public и private
Поля классов: инициализация явная и по умолчанию, спецификатор final и константы
Доступ к полям и методам
Методы: параметры (ссылки и простые типы) и возвращаемые, использование set и get- методов, перезагрузки методов, правила перезагрузки
Объектная модель. Основные положения: абстрагирование, инкапсуляция, модульность, иерархия
Диаграммы классов UML.
Объекты и классы. Объекты. Определение (с примерами). Состояние. Поведение.
Конструкторы: конструкторы по умолчанию, вызов одного конструктора из другого
Блоки инициализации
Статические поля и методы: инициализация константы, статические блоки инициализации. Использование this для доступа к членам класса
Сбор мусора и удаления объектов

8. ОТНОШЕНИЕ МЕЖДУ ОБЪЕКТАМИ

Зависимости, их разновидности
Обобщение
Ассоциации
Реализации
Связи, их множественность

9. НАСЛЕДОВАНИЕ И ПОЛИМОРФИЗМ

Наследование и полиморфизм как инструмент создания ПО. Суперкласс и подклассы, отношение обобщения, наследование в Java. Вызов конструкторов суперклассов, порядок вызовов. Ключевое слово super ()
Переопределение методов, правила переопределения. Наследование и статические поля и методы классов. Абстрактные классы и методы, – понятие, вызов конструкторов, реализация методов в субклассы
Интерфейсы. «Множественное» наследование. Определение и реализация интерфейсов. Расширение интерфейсов. Композиция как альтернатива множественному наследованию
Полиморфизм. Иерархия наследования
Преобразование и приведение типов. Использование instanceof. Отказ от наследования: терминальные (final) методы и классы. Включение как альтернатива множественному наследованию
Пакеты. Вложенность пакетов. Повторное использование кода и пакеты. Защита доступа.
Импорт: классов, статических методов и полей

10. КЛАСС OBJECT

Глобальный суперкласс Object
Методы equals (), hashCode (), toString (), finalize (), clone () и др
Правила реализации equals () и hashCode ()
Интерфейс Cloneable и его реализация
Клонирование: поверхностное и глубокое

11. ВНУТРЕННИЕ КЛАССЫ

Синтаксис объявления
Создание объектов внутренних классов
Поля и методы внутренних классов
Вложенность внутренних классов и доступ к членам внешних классов
Ссылка this во внутреннем классе
Доступ к полям и методам внешнего класса с внутреннего
Внутренние классы и спецификаторы доступа
Вложенные интерфейсы
Применение внутренних классов
Внутренние локальные классы (Method-LocalInnerClasses)
Анонимные внутренние классы
Вложенные (внутренние статические) классы (static nested classes)
Создание экземпляров
Доступ к экземпляру внешнего класса
Компиляция программ с внутренними классами

12. ПЕРЕЧИСЛЕНИЕ

Перечисление как классы. Методы values (), valueof (), name (), ordinal ().
Константы, конструкторы, методы и поля
Перечисление и конструкция switch. Импорт членов перечислений

13. РАБОТА С БАЗАМИ ДАННЫХ

Основы построения реляционных баз данных.
SQL
Нормальные формы. Запросы SELECT, INSERT, UPDATE, DELETE
JDBC
Driver, Connection, Statement, ResultSet, PrepareStatement

14. ОБРАБОТКА ОШИБОК И ИСКЛЮЧЕНИЯ

Подходы к обработке ошибок времени выполнения
Понятие исключения и исключительной ситуации
Иерархия классов исключений в Java
Контролируемые (что проверяются) и неконтролируемые (не проверяются) исключения
Генерация исключительной ситуации и оператор throws
Объявления контролируемых исключений, ключевое слово throws
Throws и перезагрузки методов
Перехват исключений
Перехват «всех» исключений
Обработка исключений
Повторная генерация исключений
Блок finally: освобождение ресурсов
Создание собственной иерархии исключений
Регистрация ошибок, логирования: логеры, уровень логгер, уровень сообщений, обработчики (объекты подкласса java.util.logging.Handler)
Пример

15. СИСТЕМА ВВОДА-ВЫВОДА

Иерархия классов потокового ввода-вывода:
Потоки ввода/вывода, механизм работы с потоками, иерархия потокового ввода-вывода
Субклассы FilterOutputStream и FilterInputStream
Байтовые потоки
Символьные потоки
Класс File. Класс RandomAccessFile
Сериализация и десериализация объектов: понятие, назначение, реализация
Пример

16. DESKTOP-ПРИЛОЖЕНИЯ

SWING, AWT. Пример простого приложения с GUI
Обработка событий

17. КЛАССЫ КОЛЛЕКЦИЙ

Понятие абстрактного типа данных (АТД)
Структуры данных: списки, стеки, множества, дерева, карты
Обход коллекций: интерфейсы Iteratorта и ListIterator, цикл «foreach»
Компараторы
Класс Collections: поиск и сортировка элементов, заполнения, синхронизование представления, неизменные представления и др.

18. ЗНАКОМСТВО С XML

Понятие формальной корректности и допустимости.
Парсинг, хранение состояние объектов
Примеры

19. МНОГОПОТОЧНОСТЬ

Понятие потока. Особенности параллельного выполнения
Потоки-демоны
Приоритеты потоков. Метод yield ()
Состояние потока: создание потоков, -runnable и -runninig – потоки

20. КЛАССЫ BIGINTEGER И BIGDECIMAL. ОСНОВНЫЕ ОПЕРАЦИИ

Документирование кода
Включение комментариев
Документирование пакетов
Дескрипторы общего назначения
Комментарии к классам, методам и полей
Использование javadoc

21. УНИВЕРСАЛЬНЫЕ ТИПЫ

Параметризованные типы: классы и интерфейсы. Параметры типа
Ограничения, наложенные на параметризованные типы: простые типы, инстанцирование, суперкласс, исключение.
Параметризованные типы и JVM

22. УТИЛИТНЫЕ ПАКЕТЫ

Форматирование и время java.util, java.time
Файловая система, java.io, Externalizable, java.nio
Неизменяемые объекты
Сериализация и десериализация данных

23. JAVA 8. АНОНИМНЫЕ ФУНКЦИИ. STREAM API

24. MAVEN

Автоматизация сборки Java-проектов. Декларативное описание проекта. Управление зависимостями. Артефакты jar, war, ear. Правила разработки собственных фреймворков и библиотек
Ant the Java legacy build tool
Maven POM

25. МОДУЛЬНОЕ ТЕСТИРОВАНИЕ

Правила и принципы
TDD
Дублеры
Mockito & PowerMock

26. JAVA ANNOTATIONS

27. JAVA REFLECTION

28. ADVANCED GENERICS

Причины улучшения подсистемы типов
Raw Types
Wildcards, <? super T>, <? extends T>
Type Erasure
Получение информации о типе generic в runtime
Дообработка собственной коллекции

29. ADVANCED COLLECTIONS

Data Structure Complexity
WeakHashMap и другие
Сторонние библиотеки коллекций

30. ADVANCED MULTITHREADING / CONCURRENCY

Низкоуровневый API
Waiting/blocked/sleeping-потоки; состояние потока “dead”
Получение результатов выполнения многопоточных вычислений. Метод join()
Синхронизация: синхронизация методов. Синхронизационные блоки.
Блокирование. Взаимодействие потоков (Thread Interaction)
Синхронизация потоков, взаимодействие потоков, шаблон “Producer-Consumer”
Особенность реализации volatile
Java Memory Model (JMM)
Публикация объектов
Высокоуровневый API
Библиотека java.util.concurrent

31. ADVANCED OOP

SOLID (базовые принципы объектно-ориентированного программирования). Dependency injection (DI) and Inversion of control (IoC)

32. DESIGN PATTERNS

33. JRE SECURITY, JVM INTERNALS

Платформы, архитектура, байт-код, ClassLoader, garbage collector, средства JVM для защищенного выполнения кода
Sandbox
Memory Management
Performance Optimization
Роль JAAS

34. DESKTOP-ПРИЛОЖЕНИЯ: ТЕХНОЛОГИЯ JAVAFX

35. SPRING

Inversion of Control
Доступ к данным
Управление транзакциями

36. РАБОТА С XML И JSON

Потоковый анализ на основе SAX. Анализ на основе DOM
Генерация Java-классов по схеме
Валидация. JSON

37. ВВЕДЕНИЕ SQL

DDL & DML
Primary Key и Foreign Key
SQL Types
JOINs
Database Indexes

38. JDBC

Пул соединений
Data Access Object

39. ЗНАКОМСТВО С LOMBOK И LOG4J

40. ЭКЗАМЕН. ЗАЩИТА ПРОГРАММНОГО ПРОЕКТА

41. КАК СОСТАВИТЬ РЕЗЮМЕ И ПРОЙТИ СОБЕСЕДОВАНИЕ

Структура резюме
Часто задаваемые вопросы
Как вести себя на собеседовании
Основные ошибки на собеседовании
Урок английского языка №1
Урок английского языка №2
Урок поиска работы

Документ об окончании курса

Сертификат Учебного центра Softline об окончании курса и справка об обучении установленного образца: 

Сертификат Softline_образец Cправка

Следующий рекомендованный курс

Оставить отзыв

Информация о курсе

2250 бел.р.

с учетом НДС 20%

Вендор: Python, Java, JS, C#, C++
Код курса: Java-Pro
Продолжительность: 37 дней / 111 ак. час
Направление: Java
Экзамен :
Записаться на курс

Название курса и комментарии*

Имя*

Фамилия*

Отчество*

Компания

Телефон*

Email*

Настоящим, в соответствии с ч.2.ст.18 Закона Республики Беларусь от 10.11.2008 N 455-З(ред. от 11.05.2016) "Об информации, информатизации и защите информации", отправляя данную форму, вы подтверждаете свое согласие на сбор, обработку и хранение ООО «СофтЛайнБел» Ваших персональных данных. ООО «СофтЛайнБел» гарантирует конфиденциальность получаемой от Вас информации. Сбор, обработка и хранение персональных данных осуществляется в целях эффективного оказания услуг, исполнения договоров и пр.