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

Введение

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

Содержание

Лекторы

Структура

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

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

  • Версии
    • Простая M3132−35
    • Сложная M3136−39, 41, 42
  • Модификации
    • Сохраняйте оба кода
  • Задержка
    • Не более 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 22 (март 2024)
    • Текущая версия
  • Java 23 (сентябрь 2024)
    • Следующая версия

JDK и JRE

  • Набор инструментов разработчика
    • Java Development Kit (JDK)
  • JVM и инструменты для запуска
    • Java Runtime Environment (JRE)
  • Примеры JVM
    • HotSpot / OpenJDK
    • Eclipse OpenJ9
    • Azul Zulu / Zing
    • Excelsior JET

Идеология

Содержание

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

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

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

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

Что еще

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

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

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

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

  • Naming Conventions for Java Programming Language|https://google.github.io/styleguide/javaguide.html#s5-naming
  • TypeNamingConvention
  • methodNamingConvention()
  • fieldNamingConvention
  • variableNamingConvention
  • CONSTANT_NAMING_CONVENTION

Hello World

Содержание

Заключение

Содержание

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

Литература

Вопросы

???