1. Введение в Java. Вводное занятие. | Технострим
1. Введение в Java. Вводное занятие. | Технострим
https://www.youtube.com/watch?v=XcWqkNE3dzE
• Михаил Нечаев будет вести открытый курс по программированию на Java, состоящий из 12 занятий.
• Будут домашние задания, тесты и итоговый проект.
• Java занимает первое место по популярности среди языков программирования.
• В мире Java произошли печальные изменения, но она все еще популярна в медицине и ракетостроении.
• Java позволяет абстрагироваться от операций с памятью и имеет большую библиотеку для работы с числами и структурами данных.
• В Java есть виртуальная машина, компилятор и спецификация, которая определяет правила для компиляторов.
• Виртуальная машина Java обеспечивает кроссплатформенность, компилируя код в байт-код, понятный виртуальной машине.
• Виртуальная машина оптимизирует код по мере его исполнения, компилируя часто используемые части.
• Сборка мусора освобождает память, когда объекты становятся не нужны.
• Горб-коллектор уменьшает дефрагментацию памяти и оптимизирует использование больших объектов.
• Недостижимые объекты удаляются, достижимые объекты продолжают жить.
• Java стала платной, и теперь для использования в бизнесе или для разработки нужно платить.
• Альтернативные решения, такие как OpenJDK, доступны бесплатно, но не поддерживаются Oracle.
25:41 Обзор основных понятий Java
• Обсуждение модификатора доступа "public", который делает класс доступным для других классов.
• Упоминание о том, что если класс назван "Java", то он должен быть "public".
28:13 Создание и вызов методов
• Обсуждение того, что метод "main" является точкой входа в программу и может быть вызван из других классов.
• Объяснение, что "static" означает, что метод может быть вызван без создания экземпляра класса.
30:36 Работа с классами и методами
• Обсуждение того, что "static" может быть применено к классам и методам.
• Объяснение, что "final" означает, что значение переменной не может быть изменено после инициализации.
34:47 Работа с потоками ввода-вывода
• Обсуждение того, что "System" - это класс из стандартной библиотеки Java, который имеет статическую ссылку на объект, умеющий работать с вводом-выводом.
• Объяснение, что "print" - это метод, который выводит строку в стандартный поток вывода.
• В 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.
• Упоминание о большом документе с правилами, который можно найти в конце видео.
• Создание репозитория и его клонирование.
• Использование Git для работы с проектами и зависимостями.
• Создание проекта с использованием идеи.
01:30:28 Запуск классов через идею
• Запуск классов через идею, а не через грядов.
• Запуск классов через идею через стрелочку зеленую.
• В видео объясняется, что если у вас есть большой проект, то вы можете использовать импорт классов для работы с ними.
• Приводится пример создания пэкаджа и импорта классов из него.
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" для отправки изменений в репозиторий.