Java Learning
19.7K subscribers
1.58K photos
1 video
3 files
956 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Метод replaceAll()

Заменяет каждую подстроку данной строки, которая соответствует заданному регулярному выражению, с данной заменой, другими словами — метод позволяет заменить слово в строке.

Параметры
regex — регулярное выражение, которому данная строка должна соответствовать;
replacement — строка, которая заменит найденное выражение.
👍16
#Вопросы_с_собеседования

Что такое «пул строк»?

Пул строк – это набор строк, хранящийся в Heap.

• Пул строк возможен благодаря неизменяемости строк в Java и реализации идеи интернирования строк;
• Пул строк помогает экономить память, но по этой же причине создание строки занимает больше времени;
• Когда для создания строки используются ", то сначала ищется строка в пуле с таким же значением, если находится, то просто возвращается ссылка, иначе создается новая строка в пуле, а затем возвращается ссылка на неё;
• При использовании оператора new создаётся новый объект String. Затем при помощи метода intern() эту строку можно поместить в пул или же получить из пула ссылку на другой объект String с таким же значением;
• Пул строк является примером паттерна «Приспособленец» (Flyweight).
👍20
Регулярное выражение для электронной почты

Регулярные выражения представляют собой формальный язык поиска и редактирования подстрок в тексте. К примеру, надо провалидировать email адрес. Это будет проверка на наличие имени адреса, домена, символа @, точки и доменной зоны.
👍26😱5👎1
Что выведет код сверху?
Anonymous Quiz
18%
4
31%
6
22%
8
29%
Error
👍6
Метод retainAll()

Используется для удаления всех элементов списка массива, не содержащихся в указанной коллекции, или для сохранения всех совпадающих элементов в текущем экземпляре ArrayList, которые соответствуют всем элементам из списка Collection, переданного методу в качестве параметра.

Подробнее про метод можно почитать здесь.
👍14
Обзор модулей Spring для Java

Spring для Java — обширная платформа для создания веб-проектов на Java, состоящая из множества независимых модулей (проектов) для разных задач: от простых веб-приложений до Big Data.

Смотреть статью
👍22
👍8
Что выведет код сверху?
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