Java Learning
19.5K subscribers
1.6K photos
1 video
3 files
972 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Что выведет код сверху?
Anonymous Quiz
27%
HHH
18%
H(бесконечное число раз)
9%
H
46%
Error
#Вопросы_с_собеседования

Для чего в Java используются статические блоки инициализации?

Статические блоки инициализация используются для выполнения кода, который должен выполняться один раз при инициализации класса загрузчиком классов, в момент, предшествующий созданию объектов этого класса при помощи конструктора. Такой блок (в отличие от нестатических, принадлежащих конкретном объекту класса) принадлежит только самому классу (объекту метакласса Class).
👍17
Сортировка методом выбора

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

Суть алгоритма заключается в последовательном переборе всех чисел и выборе наименьшего элемента, который мы возьмём и поменяем местами с крайним элементом слева (0 элементом).

Данный алгоритм превосходит пузырьковую сортировку, ведь тут количество необходимых перестановок сокращается с O(N²) до O(N): мы не гоняем один элемент через весь список, но тем не менее, количество сравнений остается O(N²).
👍202
Метод Thread.sleep()

В работу программы на Java можно вставлять паузы.

Например, вы программируете игру и хотите, чтобы она делала какие-то действия раз в две секунды или несколько раз в секунду.

В скобках указана длина паузы в миллисекундах (1/1000 часть секунды).

В общем, пауза вещь полезная, поэтому смотрим, как же добавить паузу в код. Это на самом деле очень просто.
👍201
👍4
👍1
JIT-оптимизация

Java-код обрабатывается с помощью JIT-компиляции: сначала транслируется в платформонезависимый байт-код, а уже после этого в машинный код. При этом оптимизируется все, что возможно, и разработчик может помочь компилятору создать максимально эффективную программу.

В качестве примера взглянем на две простые операции:
// 1
n += 2 * i * i;

// 2
n += 2 * (i * i);

Измерим время выполнения каждой из них. Запустив код с картинки несколько раз, получим подобные цифры, отображающие время выполнения:

2 * (i * i) | 2 * i * i
0.5183738 | 0.6246434
0.5298337 | 0.6049722
0.5308647 | 0.6603363
0.5133458 | 0.6243328
0.5003011 | 0.6541802

Закономерность очевидна: группировка переменных с помощью скобок ускоряет работу программы. Это происходит из-за генерации более эффективного байт-кода при умножении одинаковых значений.

Подробнее об этом эксперименте вы можете почитать здесь.
👍441
#Вопросы_с_собеседования

В чем разница между классами java.util.Collection и java.util.Collections?

java.util.Collections(подробнее можно почитать здесь) - набор статических методов для работы с коллекциями.

java.util.Collection(подробнее можно почитать здесь) - один из основных интерфейсов Java Collections Framework.
👍20
Log4j

Log4j – библиотека, взявшая на себя обязанности по избавлению разработчика от лишней головной боли при организации логирования в приложении. Она инкапсулирует почти все операции (прямая работа с файлами логов, оформление логов, разграничение уровней логирования), предоставляя разработчику удобный и минималистичный интерфейс взаимодействия с логами.

После подключения и быстрой настройки библиотеки работа с логами будет сведена к коду на картинке. После выполнения кода в лог будет записано что-то вроде:

2022-02-05 15:00 DEBUG MainClass:5 — Сообщение об баге

2022-02-05 15:00 ERROR MainClass:6 — Сообщениe об ошибке

2022-02-05 15:00 WARN MainClass:7 — Предупреждение

2022-02-05 15:00 INFO MainClass:8 — Информация

Подробнее о библиотеке можно узнать на сайте разработчика.
👍17
#Вопросы_с_собеседования

Чем различаются Enumeration и Iterator?

Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью Enumeration нельзя добавлять/удалять элементы;
• в Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNеxt(), Enumeration.nextElement() соответствует Iterator.nеxt() и т.д);
• Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.
👍24
👍13😱7
☕️ Основы Java: выделяем 4 разных роли классов

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

Смотреть статью
👍18
💡 libgdx/libgdx

Один из самых популярных Java-репозиториев на Github, в котором вы сможете найти полноценный фреймворк для гейм-девелопмента, написанный в основном на Java (некоторые компоненты на C и C++).

Работа основана на платформонезависимом OpenGL, поэтому libgdx поддерживает практически все существующие платформы и позволяет легко переносить проект между ними.
👍9
Язык программирования Java - зачем его учить и что на нем пишут

0:00 Вступление
0:10 Какие из этих программ написаны на Java?
0:33 История создания Java
1:34 Как применяется Java
3:10 Популярные фреймворки
4:37 Архитектура приложений - виртуальная машина, управление памятью
6:40 Типизация в Java
7:30 Другие особенности Java
8:05 Зарплаты разработчиков на Java
9:01 Мой опыт работы с Java
12:05 Как начать писать на Java
12:40 Ответы на вопрос из начала видео

Смотреть видео
👍27
Что выведет код сверху?
Anonymous Quiz
14%
48
6%
4 8
56%
12
24%
Error
👍8