👍3
https://habr.com/ru/articles/1051878/
Так ребят, новая статья на Хабре🤓
Читаем, если есть вопросы - задаем, ну и конечно же оцениваем!
Всех обнял, приподнял 🤝
Так ребят, новая статья на Хабре
Читаем, если есть вопросы - задаем, ну и конечно же оцениваем!
Всех обнял, приподнял 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Анатомия Spring Proxy: кто и зачем подменяет ваши бины
Продолжаю рассказ о том как безработный Java - разработчик ищет себе занятия...)) В этот раз, благодаря вопросам ребят, которых вынужденно менторю (кстати пользуясь случаем, всем благодарен, ценю) , я...
👍9🔥3
Что такое 🤓
Ответ:
Records (Java 14 preview, финал в Java 16) — это неизменяемые (immutable) классы-носители данных.
Объявляются как record Point(int x, int y) {}.
Компилятор автоматически генерирует: конструктор, геттеры (с теми же именами), equals(), hashCode(), toString().
Можно добавить компактный конструктор для валидации. Records не могут наследоваться, но могут реализовывать интерфейсы.
Идеальны для DTO, value objects, кортежей. Упрощают создание классов-данных, уменьшая шаблонный код.
#собеседование
record (Record-классы)? Ответ:
Records
Объявляются как record Point(int x, int y) {}.
Компилятор автоматически генерирует: конструктор, геттеры (с теми же именами), equals(), hashCode(), toString().
Можно добавить компактный конструктор для валидации. Records не могут наследоваться, но могут реализовывать интерфейсы.
Идеальны для DTO, value objects, кортежей. Упрощают создание классов-данных, уменьшая шаблонный код.
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
История технологии сегодня — 26 июня
ℹ️ Кто родился в этот день
Уи́льям То́мсон, лорд Ке́львин (Ке́лвин) (англ. William Thomson, 1st Baron Kelvin; 26 июня 1824 года, Белфаст, Ирландия — 17 декабря 1907 года, Ларгс, Шотландия) — британский физик, механик и инженер. Известен своими работами в области термодинамики, механики, электродинамики.
Роберт Колман Ри́чардсон (англ. Robert Coleman Richardson; 26 июня 1937, Вашингтон — 19 февраля 2013) — американский физик, лауреат Нобелевской премии по физике 1996 года, совместно с Дугласом Ошеровым и Дэвидом Ли, «за открытие сверхтекучести гелия-3».
🌐 Знаковые события
1954 — произведён энергетический пуск первой в мире атомной электростанции.
1997 — основана антивирусная компания «Лаборатория Касперского».
#Biography #Birth_Date #Events #26июня
Уи́льям То́мсон, лорд Ке́львин (Ке́лвин) (англ. William Thomson, 1st Baron Kelvin; 26 июня 1824 года, Белфаст, Ирландия — 17 декабря 1907 года, Ларгс, Шотландия) — британский физик, механик и инженер. Известен своими работами в области термодинамики, механики, электродинамики.
Роберт Колман Ри́чардсон (англ. Robert Coleman Richardson; 26 июня 1937, Вашингтон — 19 февраля 2013) — американский физик, лауреат Нобелевской премии по физике 1996 года, совместно с Дугласом Ошеровым и Дэвидом Ли, «за открытие сверхтекучести гелия-3».
1954 — произведён энергетический пуск первой в мире атомной электростанции.
1997 — основана антивирусная компания «Лаборатория Касперского».
#Biography #Birth_Date #Events #26июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
[Совет по Java #054]
Тема:
Проблема: Метод
При обработке упорядоченных стримов (например, из
Решение: Используйте перегруженную версию
Объяснение:
Передавая
#Java #советы
Тема:
Collectors.groupingBy сохраняет порядок, если передать LinkedHashMap::new в качестве supplier.Проблема: Метод
Collectors.groupingBy(Function classifier) по умолчанию использует HashMap для накопления результатов, который не гарантирует никакого порядка ключей. При обработке упорядоченных стримов (например, из
List с определенной последовательностью) порядок ключей в результирующей Map может быть произвольным, что нарушает ожидания разработчика и может привести к непредсказуемому поведению при последующей итерации. Это особенно критично, если порядок группировки важен для бизнес-логики (например, группировка по датам в хронологическом порядке). Даже если стрим упорядочен, HashMap не сохраняет этот порядок, так как его структура основана на хэш-кодах.Решение: Используйте перегруженную версию
Collectors.groupingBy(classifier, supplier, downstream), передавая LinkedHashMap::new в качестве supplier.
LinkedHashMap сохраняет порядок вставки ключей, а порядок вставки при группировке соответствует порядку, в котором ключи впервые встречаются в стриме (для упорядоченных стримов). Если нужен другой порядок (например, сортировка по ключу), используйте TreeMap::new и groupingBy с сортировкой.import java.util.*;
import java.util.stream.*;
public class GroupingByOrder {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "apple", "cherry", "banana");
//По умолчанию: HashMap — порядок не гарантирован
Map<String, Long> defaultMap = words.stream()
.collect(Collectors.groupingBy(
s -> s,
Collectors.counting()
));
System.out.println("Default (HashMap): " + defaultMap);
// Может вывести {banana=2, cherry=1, apple=2} (порядок зависит от хэшей)
//Сохранение порядка вставки (LinkedHashMap)
Map<String, Long> orderedMap = words.stream()
.collect(Collectors.groupingBy(
s -> s,
LinkedHashMap::new, // supplier для сохранения порядка
Collectors.counting()
));
System.out.println("Ordered (LinkedHashMap): " + orderedMap);
// Порядок: apple (первое вхождение), banana, cherry
//Для сортировки по ключу используем TreeMap
Map<String, Long> sortedMap = words.stream()
.collect(Collectors.groupingBy(
s -> s,
TreeMap::new,
Collectors.counting()
));
System.out.println("Sorted by key: " + sortedMap); // apple, banana, cherry
// Для группировки с downstream коллектором, сохраняющим порядок элементов
Map<String, List<String>> groupedList = words.stream()
.collect(Collectors.groupingBy(
s -> s,
LinkedHashMap::new,
Collectors.toList() // сохраняет порядок элементов внутри группы
));
System.out.println("Grouped with list order: " + groupedList);
// {apple=[apple, apple], banana=[banana, banana], cherry=[cherry]}
}
}
Объяснение:
Collectors.groupingBy имеет три перегрузки: первая использует HashMap и ArrayList как downstream; вторая позволяет задать конкретную фабрику для результирующей Map; третья также позволяет задать downstream-коллектор. Передавая
LinkedHashMap::new, мы явно указываем, что карта должна сохранять порядок вставки. Порядок вставки определяется порядком появления ключей в стриме. Для упорядоченных стримов (полученных из List, SortedSet или после sorted()) это дает предсказуемый результат. Для параллельных стримов сохранение порядка не гарантируется, даже с LinkedHashMap, потому что порядок обработки недетерминирован. Также важно, что LinkedHashMap немного дороже по памяти, чем HashMap, но эта цена оправдана, когда порядок важен.#Java #советы
👍3
Что выведет код?
#Tasks
import java.util.*;
import java.util.stream.*;
public class Task260626 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
Map<Integer, List<Integer>> map = numbers.stream()
.collect(Collectors.groupingBy(
n -> n % 2,
LinkedHashMap::new,
Collectors.toList()
));
System.out.println(map.keySet());
}
}
#Tasks
👍2
👍3
Что такое pattern matching для 🤓
Ответ:
Начиная с Java 16, instanceof может объявлять переменную одновременно с проверкой: if (obj instanceof String s) { ... }.
Если объект является экземпляром String, переменная s инициализируется автоматически, и её можно использовать в блоке.
Это сокращает код и устраняет необходимость явного приведения.
В Java 17+ pattern matching расширен на switch. Упрощает работу с полиморфными структурами, делая код более безопасным (переменная недоступна вне области).
#собеседование
instanceof? Ответ:
Если объект является экземпляром String, переменная s инициализируется автоматически, и её можно использовать в блоке.
Это сокращает код и устраняет необходимость явного приведения.
В Java 17+ pattern matching расширен на switch. Упрощает работу с полиморфными структурами, делая код более безопасным (переменная недоступна вне области).
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
История технологии сегодня — 27 июня
ℹ️ Кто родился в этот день
Влади́мир Миха́йлович Петляко́в (15 (27) июня 1891, село Самбек, область Войска Донского, Российская империя — 12 января 1942, деревня Мамешево, Сергачский район, Горьковская область, РСФСР, СССР) — советский авиаконструктор.
Известные модели самолётов
Тяжелый бомбардировщик ТБ-3 (АНТ-6)
Пассажирский самолёт АНТ-14 «Правда»
Тяжелый бомбардировщик ТБ-4 (АНТ-16)
Агитационный самолёт АНТ-20 «Максим Горький»
Тяжёлый бомбардировщик дальнего действия Пе-8 (АНТ-42, ТБ-7)
Высотный истребитель ВИ-100
Пикирующий бомбардировщик Пе-2
Высотный истребитель Пе-3
🌐 Знаковые события
1931 — в США изобретатель Игорь Сикорский подал патентную заявку на вариант одновинтового вертолёта с небольшим рулевым винтом.
#Biography #Birth_Date #Events #27июня
Влади́мир Миха́йлович Петляко́в (15 (27) июня 1891, село Самбек, область Войска Донского, Российская империя — 12 января 1942, деревня Мамешево, Сергачский район, Горьковская область, РСФСР, СССР) — советский авиаконструктор.
Известные модели самолётов
Тяжелый бомбардировщик ТБ-3 (АНТ-6)
Пассажирский самолёт АНТ-14 «Правда»
Тяжелый бомбардировщик ТБ-4 (АНТ-16)
Агитационный самолёт АНТ-20 «Максим Горький»
Тяжёлый бомбардировщик дальнего действия Пе-8 (АНТ-42, ТБ-7)
Высотный истребитель ВИ-100
Пикирующий бомбардировщик Пе-2
Высотный истребитель Пе-3
1931 — в США изобретатель Игорь Сикорский подал патентную заявку на вариант одновинтового вертолёта с небольшим рулевым винтом.
#Biography #Birth_Date #Events #27июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Помоему что-то много я библиотек добавил....😂
🤣4🤯3