May 17, 2024

1. Введение в Java. Вводное занятие. | Технострим  

1. Введение в Java. Вводное занятие. | Технострим

https://www.youtube.com/watch?v=XcWqkNE3dzE

00:05 Введение в курс

• Михаил Нечаев будет вести открытый курс по программированию на Java, состоящий из 12 занятий.
• Будут домашние задания, тесты и итоговый проект.

03:47 Обзор Java

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

13:11 Виртуальная машина Java

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

17:09 Сборка мусора и ссылки

• Сборка мусора освобождает память, когда объекты становятся не нужны.
• Горб-коллектор уменьшает дефрагментацию памяти и оптимизирует использование больших объектов.
• Недостижимые объекты удаляются, достижимые объекты продолжают жить.

22:16 Платная Java

• Java стала платной, и теперь для использования в бизнесе или для разработки нужно платить.
• Альтернативные решения, такие как OpenJDK, доступны бесплатно, но не поддерживаются Oracle.

25:41 Обзор основных понятий Java

• Обсуждение модификатора доступа "public", который делает класс доступным для других классов.
• Упоминание о том, что если класс назван "Java", то он должен быть "public".

28:13 Создание и вызов методов

• Обсуждение того, что метод "main" является точкой входа в программу и может быть вызван из других классов.
• Объяснение, что "static" означает, что метод может быть вызван без создания экземпляра класса.

30:36 Работа с классами и методами

• Обсуждение того, что "static" может быть применено к классам и методам.
• Объяснение, что "final" означает, что значение переменной не может быть изменено после инициализации.

34:47 Работа с потоками ввода-вывода

• Обсуждение того, что "System" - это класс из стандартной библиотеки Java, который имеет статическую ссылку на объект, умеющий работать с вводом-выводом.
• Объяснение, что "print" - это метод, который выводит строку в стандартный поток вывода.

36:50 Модификаторы доступа

• В Java есть четыре модификатора доступа: public, protected, private и default.
• Public - самый открытый доступ, можно получить доступ к переменной или методу из любого места.
• Protected - доступ только из подклассов и классов в одном пакете.
• Private - доступ только из класса, в котором объявлена переменная или метод.
• Default - доступ только из класса, в котором объявлена переменная или метод, и из подклассов этого класса.

41:12 Интерфейсы и абстрактные классы

• Интерфейс - это контракт, который обязует реализующие классы выполнять определенные методы.
• С Java 8 в интерфейсах можно использовать методы с реализацией.
• Абстрактный класс - это класс, который не может быть создан, но может быть унаследован.
• Используется для реализации общей логики и создания иерархии классов.
• В интерфейсах можно объявлять поля, но они все публичные и статичные.
• В абстрактных классах можно объявлять переменные, которые могут быть изменяемыми.

46:47 Аннотации и их использование

• Аннотации используются для рефлексии и создания тестовых фреймворков.
• Аннотации могут быть использованы для ускорения работы с сайтами, создания серверов и обработки ссылок.

53:58 Перечисления и их использование

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

55:40 Модификаторы доступа и порядок их использования

• Модификаторы доступа (public, protected, private) должны быть использованы в определенном порядке.
• Модификатор "volatile" используется для предотвращения оптимизации компилятора и для работы с многопоточностью.

01:01:15 Типы переменных и их использование

• Переменные бывают четырех типов: экземпляры класса, статические переменные класса, локальные переменные и параметры методов.
• В Java есть примитивные и ссылочные типы данных.

01:03:21 Примитивные типы данных

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

01:07:36 Границы примитивных типов

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

01:13:31 Статические и нестатические переменные

• Объясняется разница между статическими и нестатическими переменными, включая их использование в объектно-ориентированном программировании.
• Упоминается, что статические переменные могут быть использованы для оптимизации и оптимизации памяти в ограниченном пространстве, например, в мобильных устройствах.

01:18:52 Нейминг и соглашения в Java

• Обсуждение правил именования классов, методов и полей в Java.
• Упоминание о большом документе с правилами, который можно найти в конце видео.

01:20:40 Работа с Git

• Создание репозитория и его клонирование.
• Использование Git для работы с проектами и зависимостями.
• Создание проекта с использованием идеи.

01:30:28 Запуск классов через идею

• Запуск классов через идею, а не через грядов.
• Запуск классов через идею через стрелочку зеленую.

01:31:58 Импорт классов

• В видео объясняется, что если у вас есть большой проект, то вы можете использовать импорт классов для работы с ними.
• Приводится пример создания пэкаджа и импорта классов из него.

01:39:55 Реализация интерфейса

• В видео предлагается домашнее задание, где нужно реализовать интерфейс, который печатает числа от определенного до определенного значения.
• Указывается, что можно реализовать интерфейс разными способами, включая создание нескольких классов или одного класса.
• Также рекомендуется использовать репозиторий для проверки изменений.

01:47:41 Создание пури квестов

• Зайти на сайт GitHub World, нажать на кнопку "fork" и создать свой репозиторий.
• Зайти в терминал и сделать "git clone" для создания клона.
• Создать папку для хранения репозитория и сделать "git clone" в этой папке.

01:56:30 Настройка и актуализация репозитория

• Создать папку "programming slash GitHub" и сделать "git clone" по ссылке из репозитория.
• Если репозиторий не был скачан ранее, будут актуальные изменения.
• Настроить "git remote add" для подключения к репозиторию.
• Настроить "git pull" для обновления изменений.
• Настроить "git push" для отправки изменений в репозиторий.