Введение в программирование

Введение

Структура курса

Содержание

Лекторы

Структура

  • Лекции
  • Домашние задания
  • Практика
  • Зачёт
    • Досрочная сдача
    • Сдача в сессию

Практика и баллы

  • Версии
    • Простая M3132−35
    • Сложная M3136−39
  • Модификации
    • Сохраняйте оба кода
  • Задержка
    • Не более 3 недель
  • Минусы
    • Не горят
  • Бонусы
    • Первому сдавшему преподавателю
    • Нашедшим ошибки и опечатки

Почему Java?

Почему Java?

  • Простой
    • Ноги целее будут
  • Широкий спектр применения
    • Сервера
    • Десктоп
    • Мобилки
    • Смарт-карты
  • Домашние задания
    • По другим предметам
  • C++ будет
  • Базовый Python — сами

Концепции Java

Содержание

Платформа

Содержание

Состав платформы

Редакции Java-платформы

  • Standard Edition
    • Для обычных приложений
  • Enterprise Edition
    • Для серверных приложений
  • Micro Edition
    • Для мобильных приложений
    • То, что мертво, умереть не может
  • Java Card
    • SIM- и смарт-карты

Версии Java (1)

  • JDK 1.0 (январь 1996)
  • J2SE 1.2 (декабрь 1998)
    • Collections Framework
  • J2SE 5.0 (сентябрь 2004)
    • Generics
  • Java SE 8 (март 2014)
    • Streams и lambdas
  • Java SE 9 (сентябрь 2017)
    • Модули
  • Java SE 10 (март 2018)
    • var

Версии Java (2)

  • Java 11 (сентябрь 2018)
    • jshell
  • Java 17 [LTS-old] (сентябрь 2021)
    • Предыдущая стабильная версия
    • Многочисленные мелкие изменения
  • Java 21 [LTS] (сентябрь 2023)
    • Текущая стабильная версия
  • Java 24 (март 2025)
    • Текущая версия
  • Java 25 (сентябрь 2025)
    • Следующая версия

JDK и JRE

Идеология

Содержание

Байт-код и виртуальная машина

  • Что такое виртуальная машина
  • Что такое байт-код
    • Write once run anywhere
    • Преимущества и недостатки
    • JIT-компиляция

Сборка мусора

  • Что такое сборка мусора
    • Есть в Lisp / Python / Go / CLR
    • Невозможность в C / C++
  • Подсчет ссылок
    • Реализован в Python
    • Не работает в общем случае
  • Обход графа ссылок
    • Реализован в JVM и CLR (.NET), Go

Что еще

  • Простота языка
  • Надёжность и безопасность
  • Многоязычность (Unicode)
  • Многопоточность
  • Обратная совместимость

Оформление кода

  • Как на лекциях
  • Максимальная ширина: 120 символов
  • Отступы обязательны
    • Четыре пробела
  • Фигурные скобки
    • Открывающая – на той же строке
    • Закрывающая – на отдельной строке
  • Для педантов

Соглашения об именованиях

Hello World

Содержание

Заключение

Содержание

Основная документация

Литература

Вопросы

???