Программирование на Java

Санкт-Петербург, осень 2014

Описание

Рекомендуемая литература по курсу:

Первоисточники:

Адрес для связи с преподавателем: vladykin+java2014 at gmail dot com.

Домашние задания проверяет Артём Попов.

Оценка за курс выставляется по результатам домашних заданий и контрольных работ. В конце семестра все баллы за контрольные и домашки складываются, вычисляется процент от максимального балла и определяется оценка: 91-100% -- оценка отлично, 75-90% -- оценка хорошо, 60-74% -- оценка удовлетворительно.

По ссылке можно найти курс 2011 года от Георгия Корнеева.

Видео всех лекций курса на канале CS центра на YouTube.

Преподаватели

Список лекций

Введение в Java
  • История и эволюция языка
  • Ключевые особенности
  • Hello World
  • Инструменты разработчика: Java Development Kit
  • Автоматизация сборки при помощи Maven
Базовый синтаксис Java

Система типов: * Примитивные типы, преобразование типов. * Ссылочные типы. Массивы и строки.

Управляющие конструкции: * Условные операторы (if, switch). * Циклы (for, while, do). * Операторы break и continue, метки.

Объекты, классы и пакеты в Java
  • Основы ООП.
  • Класс, интерфейс, перечисление.
  • Аннотации.
  • Модификаторы доступа.
  • Вложенные классы.
  • Наследование.
  • Пакеты.
Обработка ошибок, исключения, отладка
  • Обзор подходов к обработке ошибок.
  • Исключения, типы исключений.
  • Конструкции try/catch/finally, try-with-resources, multicatch.
  • Java Logging API.
  • Использование отладчика.
Collections Framework и Generics

Обзор стандартных коллекций и их реализации: * Списки, стеки, очереди. * Множества. * Ассоциативные массивы.

Generics: * Параметризация классов и методов * Синтаксис и реализация в Java

Ввод-вывод, доступ к файловой системе

Классы: java.io.File и java.nio.file.*

Потоки байт: InputStream, OutputStream.

Потоки символов: Reader, Writer.

java.io.StreamTokenizer и java.util.Scanner.

Элементы функционального программирования
  • Функциональные интерфейсы
  • Лямбда-выражения
  • Ссылки на методы
  • Stream API
Java-классы: взгляд изнутри

Reflection API.

Расположения объекта в памяти.

Java-байткод.

Альтернативные языки для JVM.

Тестирование Java-программ

Модульное тестирование: JUnit, FEST Assert, Mockito.

Тестирование производительности: JMH.

Многопоточность в Java: основы

Общие сведения о параллелизме.

Запуск и остановка потоков.

Синхронизация потоков: synchronized, wait, notify.

Модель памяти.

Ключевое слово volatile.

Многопоточность в Java: средства стандартной библиотеки

Атомарные типы.

Примитивы синхронизации.

Коллекции.

ExecutorService.

ForkJoinPool.

Разработка сетевых приложений на Java

URI и URL.

Сокеты.

Блокирующий и неблокирующий ввод-вывод.

Библиотека Netty.