Android Broadcast
13.8K subscribers
3.13K photos
225 videos
9 files
5.31K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
#java #collections

How HashMap works in Java

Как минимум будет полезно освежить в памяти или для подготовки к интервью понять внутреннее устройство самой популярной реализации Map в Java

Сорян за источник - в нём авторы совсем не знают меры с количеством рекламы
#java

Вышла Java 18

Вышла и вышла. Читать узнавать особо бесполезно. Полугодовой конвейер, который нагоняет Kotlin, но экспериментирует с Pattern Matching
#java

Хоть в прикладной Android разработке Java осталось мало, но у нас под капотом. Поздравить с ДР стоит - Java 27 лет
#java

Получение generic-типа в runtime

В Java Generic стираются в Runtime, но порой к ним нужен доступ. В статье автор рассказывает как через рефлексию можно достать необходимую информацию
Глубокое погружение в Java Memory Model

Если вы столкнулись с таким вопросом на собеседование, то вам будет полезно почитать. Если нет - вооружитесь знаниями заранее. Из статьи вы узнаете про:
👉 Java Memory Model (JMM)
👉 Memory Ordering
👉 Sequential Consistency
👉 Happens-before

Материал большой, но позволит вам разобраться

#concurrency #java
Вышла Java 19

👉 Паттерн-матчинг для switch (все еще превью)
👉 Паттерны записей (превью)
👉 Виртуальные потоки (или легковесный поток, схоже с корутинами). Конечно же тоже превью фичи
👉 Structured Concurrency (в инкубаторе, это даже раньше чем превью)

Kotlin и современные подходы драйвят Java, но вот Pattern Matching то что хотело бы увидеть в Kotlin

#java
Вышла Java 20
👉 Data Records (Превью)
👉 Паттерн-матчинг для switch (Превью)
👉 Виртуальные потоки они же Project Loom (Превью) - аналог Kotlin корутин
👉 Scoped Values (Инкубатор) - позволяет обмениваться иммутабельными данными без их передачи через аргументы методов
👉 Structured Concurrency (Инкубатор) - объединение несколько задач в разных потоках в единую работу
👉 Foreign Function & Memory API (Превью)
👉 Vector API (Инкубатор)

#java
В Android Studio Flamingo и Android 14 (API level 34) появилась возможность использовать Java Records (появились в Java 16) - аналог data классов из Kotlin. Конечно же R8/D8 поддерживают Desugaring этой фичи для предыдущих версий Android, но вот кейсы с рефлексией будут доступны только на Android 14 и выше

Подробности тут

#androidstudio #java
Разница между загрузкой и инициализацией классов в Java на любопытном примере (9 мин)

Хоть вам Java уже и не нужна, вы ведь на ней не пишите, но знать работы JVM виртуальной машины все также нужно. В статье показывается разница между загрузкой класса и его инициализацией.

В статье узнаете причины таких ошибок как NoClassDefFoundError и ClassNotFoundException

#java
Вышла Java 21
👉 Стабильный Pattern Matching для switch
👉 Record Pattern
👉 String Templates
👉 Безымянные переменные
👉 Можно запускать программы с методами main(), которые не являются public static и у которых нет параметра String[] args
👉 Project Loom - виртуальные потоки (стабильные)
👉 Превью Structured Concurrency

В Java все больше и больше становится Kotlin, хотя вот pattern matching - это то что хотелось бы увидеть в Kotlin

#java
Интересное применение Java Dynamic Proxy для загрузок конфигураций модулей: Подробности в статье

#java
Вышел Gradle 8.8:
👉 Поддержка Java 22
👉 Конфигурация JVM демона Gradle через toolchain
👉 Скорость работы больших проектов в IDE увеличена (наблюдали ускорение на 12% с проекте с 15 000 Gradle тасков)
👉 Version Catalog позволяет объявлять плагины без версий
👉 Новые методы-callback жизненного цикла GradleLifecycle
👉 Изолированные проекты через Project.getIsolated() - доступ только к свойствам проекта что не задевают другие проекты. В будущем позволит значительно ускорить параллельную сборку

#gradle