Используйте
Так не придётся несколько раз прогонять один и тот же поток данных.
Метод возвращает объект
Для
#Java #Streams
👉 Java Portal
Collectors.summarizingInt(), чтобы за один проход получить количество элементов, сумму, минимум, максимум и среднее значение.Так не придётся несколько раз прогонять один и тот же поток данных.
Метод возвращает объект
IntSummaryStatistics.Для
long и double есть аналогичные методы: summarizingLong() и summarizingDouble().#Java #Streams
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9👍1👀1
Сопоставление с образцом для
Старый подход: сначала
Новый подход:
При этом d существует только там, где условие проверки истинно.
#Java #PatternMatching
👉 Java Portal
instanceof: переменную можно объявить прямо в проверке.Старый подход: сначала
instanceof, затем отдельное приведение типа.Новый подход:
if (obj instanceof Dog d) — переменная d сразу готова к использованию.При этом d существует только там, где условие проверки истинно.
#Java #PatternMatching
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1
Java: поверхностное клонирование копирует только сам объект, а вложенные объекты остаются общими.
Глубокое клонирование дополнительно копирует и вложенные поля.
Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.
#Java #SoftwareEngineering
👉 Java Portal
super.clone() сам по себе создаёт поверхностную копию.Глубокое клонирование дополнительно копирует и вложенные поля.
Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.
#Java #SoftwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
💡 Java — не стоит считать, что десятичным разделителем всегда будет точка.
✅ Шаблоны вроде
✅ Нужные разделители можно задать через
✅ В Италии число будет выглядеть как
#Java #JavaDev
👉 Java Portal
✅ Шаблоны вроде
#,###.## всё равно используют символы, зависящие от локали.✅ Нужные разделители можно задать через
DecimalFormatSymbols(locale).✅ В Италии число будет выглядеть как
1.234,56, а в США — 1,234.56.#Java #JavaDev
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
💡 Java: если переопределяете
✅ Равные объекты должны иметь одинаковый hash code
✅ Иначе
#Java #OOP
👉 Java Portal
equals(), всегда переопределяйте и hashCode().✅ Равные объекты должны иметь одинаковый hash code
✅ Иначе
HashSet и HashMap могут не находить совпадения#Java #OOP
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4
Java Stream API tip: группируйте объекты по нужному полю без написания циклов вручную.
Удобно для отчётов, dashboards и aggregation logic.
#Java #JavaTips #StreamAPI #BackendDevelopment
👉 Java Portal
Удобно для отчётов, dashboards и aggregation logic.
#Java #JavaTips #StreamAPI #BackendDevelopment
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Java: рефакторьте legacy code небольшими шагами — тесты должны быть вашей страховкой.
✅ Сначала добавьте тест, который фиксирует текущее поведение
✅ Измените что-то одно, запустите тесты и повторите
✅ Избегайте масштабных переписываний кода без test coverage
#Java #LegacyCode
👉 Java Portal
✅ Сначала добавьте тест, который фиксирует текущее поведение
✅ Измените что-то одно, запустите тесты и повторите
✅ Избегайте масштабных переписываний кода без test coverage
#Java #LegacyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
Java tip:
Более чистый код с меньшим количеством boilerplate.
#java #coding
👉 Java Portal
isBlank() > isEmpty()Более чистый код с меньшим количеством boilerplate.
#java #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6❤3🤣1
💡 Java: Checked vs Unchecked Exceptions
✅ Checked (
✅ Unchecked (
✅ Используйте checked exceptions только для ошибок, после которых возможно восстановление
#Java #ErrorHandling
👉 Java Portal
✅ Checked (
IOException): compiler требует обработать exception через try/catch или объявить его через throws✅ Unchecked (
RuntimeException): обработка на этапе компиляции не требуется✅ Используйте checked exceptions только для ошибок, после которых возможно восстановление
#Java #ErrorHandling
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
💡 Java: не раскрывайте изменяемое внутреннее состояние — возвращайте DTO или копии
✅ Getters, возвращающие изменяемые коллекции напрямую, могут быть опасны
✅ Вызывающий код сможет изменить внутреннее состояние объекта без вашего контроля
✅ Предпочитайте DTO,
#Java #Encapsulation
👉 Java Portal
✅ Getters, возвращающие изменяемые коллекции напрямую, могут быть опасны
✅ Вызывающий код сможет изменить внутреннее состояние объекта без вашего контроля
✅ Предпочитайте DTO,
List.copyOf() или unmodifiable views#Java #Encapsulation
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1