#Java
«Вышла Java 16» - одна из самых непопулярных статей в мире Android разработки, который уже массово переехал на Kotlin. В новой версии Java догоняет по фичам Kotlin, а также представляет уникальную - Паттерн-матчинг для оператора instanceof (JEP 375). Обо всех обновлениях читайте в статье
«Вышла Java 16» - одна из самых непопулярных статей в мире Android разработки, который уже массово переехал на Kotlin. В новой версии Java догоняет по фичам Kotlin, а также представляет уникальную - Паттерн-матчинг для оператора instanceof (JEP 375). Обо всех обновлениях читайте в статье
#Concurrency #Java
Что такое ExecutorService?
Android разработке не стоит забыть про Java API, как оно работает и что применять. В статье разбирается ExecutorService, который позволяет управлять пулами потоков и получать результат асинхронной операции.
Что такое ExecutorService?
Android разработке не стоит забыть про Java API, как оно работает и что применять. В статье разбирается ExecutorService, который позволяет управлять пулами потоков и получать результат асинхронной операции.
#java
Основы Java Bytecode
Хоть Android разработчики и пишут на Kotlin, под капотом всё равно остаётся JVM bytecode, поэтому его знания поможет вам лучше понять работу кода и то, что Kotlin выдаёт на выходе
Основы Java Bytecode
Хоть Android разработчики и пишут на Kotlin, под капотом всё равно остаётся JVM bytecode, поэтому его знания поможет вам лучше понять работу кода и то, что Kotlin выдаёт на выходе
#java #collections
How HashMap works in Java
Как минимум будет полезно освежить в памяти или для подготовки к интервью понять внутреннее устройство самой популярной реализации Map в Java
Сорян за источник - в нём авторы совсем не знают меры с количеством рекламы
How HashMap works in Java
Как минимум будет полезно освежить в памяти или для подготовки к интервью понять внутреннее устройство самой популярной реализации Map в Java
Сорян за источник - в нём авторы совсем не знают меры с количеством рекламы
#java
Вышла Java 18
Вышла и вышла. Читать узнавать особо бесполезно. Полугодовой конвейер, который нагоняет Kotlin, но экспериментирует с Pattern Matching
Вышла Java 18
Вышла и вышла. Читать узнавать особо бесполезно. Полугодовой конвейер, который нагоняет Kotlin, но экспериментирует с Pattern Matching
#java
Хоть в прикладной Android разработке Java осталось мало, но у нас под капотом. Поздравить с ДР стоит - Java 27 лет
Хоть в прикладной Android разработке Java осталось мало, но у нас под капотом. Поздравить с ДР стоит - Java 27 лет
#java
Получение generic-типа в runtime
В Java Generic стираются в Runtime, но порой к ним нужен доступ. В статье автор рассказывает как через рефлексию можно достать необходимую информацию
Получение generic-типа в runtime
В Java Generic стираются в Runtime, но порой к ним нужен доступ. В статье автор рассказывает как через рефлексию можно достать необходимую информацию
Глубокое погружение в Java Memory Model
Если вы столкнулись с таким вопросом на собеседование, то вам будет полезно почитать. Если нет - вооружитесь знаниями заранее. Из статьи вы узнаете про:
👉 Java Memory Model (JMM)
👉 Memory Ordering
👉 Sequential Consistency
👉 Happens-before
Материал большой, но позволит вам разобраться
#concurrency #java
Если вы столкнулись с таким вопросом на собеседование, то вам будет полезно почитать. Если нет - вооружитесь знаниями заранее. Из статьи вы узнаете про:
👉 Java Memory Model (JMM)
👉 Memory Ordering
👉 Sequential Consistency
👉 Happens-before
Материал большой, но позволит вам разобраться
#concurrency #java
Вышла Java 19
👉 Паттерн-матчинг для switch (все еще превью)
👉 Паттерны записей (превью)
👉 Виртуальные потоки (или легковесный поток, схоже с корутинами). Конечно же тоже превью фичи
👉 Structured Concurrency (в инкубаторе, это даже раньше чем превью)
Kotlin и современные подходы драйвят Java, но вот Pattern Matching то что хотело бы увидеть в Kotlin
#java
👉 Паттерн-матчинг для 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
👉 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
Подробности тут
#androidstudio #java
Разница между загрузкой и инициализацией классов в Java на любопытном примере (9 мин)
Хоть вам Java уже и не нужна, вы ведь на ней не пишите, но знать работы JVM виртуальной машины все также нужно. В статье показывается разница между загрузкой класса и его инициализацией.
В статье узнаете причины таких ошибок как NoClassDefFoundError и ClassNotFoundException
#java
Хоть вам Java уже и не нужна, вы ведь на ней не пишите, но знать работы JVM виртуальной машины все также нужно. В статье показывается разница между загрузкой класса и его инициализацией.
В статье узнаете причины таких ошибок как NoClassDefFoundError и ClassNotFoundException
#java
Вышла Java 21
👉 Стабильный Pattern Matching для switch
👉 Record Pattern
👉 String Templates
👉 Безымянные переменные
👉 Можно запускать программы с методами
👉 Project Loom - виртуальные потоки (стабильные)
👉 Превью Structured Concurrency
В Java все больше и больше становится Kotlin, хотя вот pattern matching - это то что хотелось бы увидеть в Kotlin
#java
👉 Стабильный Pattern Matching для switch
👉 Record Pattern
👉 String Templates
👉 Безымянные переменные
👉 Можно запускать программы с методами
main()
, которые не являются public static
и у которых нет параметра String[] args
👉 Project Loom - виртуальные потоки (стабильные)
👉 Превью Structured Concurrency
В Java все больше и больше становится Kotlin, хотя вот pattern matching - это то что хотелось бы увидеть в Kotlin
#java
Вышла Java 22. Что нового:
👉 Unnamed Variables & Patterns (JEP 456)
👉 Launch Multi-File Source-Code Programs
👉 String Templates (Second Preview) (JEP 459)
👉 Statements before super(...) (Preview) (JEP 447)
👉 Implicitly Declared Classes and Instance Main Methods (Second Preview) (JEP 463)
👉 Stream Gatherers (Preview) (JEP 461)
👉 Class-File API (Preview) (JEP 457)
👉 Structured Concurrency (Second Preview) (JEP 462)
👉 Scoped Values (Second Preview) (JEP 464)
👉 Foreign Function & Memory API (JEP 454)
Много других изменений и подробнее в статье
#java
👉 Unnamed Variables & Patterns (JEP 456)
👉 Launch Multi-File Source-Code Programs
👉 String Templates (Second Preview) (JEP 459)
👉 Statements before super(...) (Preview) (JEP 447)
👉 Implicitly Declared Classes and Instance Main Methods (Second Preview) (JEP 463)
👉 Stream Gatherers (Preview) (JEP 461)
👉 Class-File API (Preview) (JEP 457)
👉 Structured Concurrency (Second Preview) (JEP 462)
👉 Scoped Values (Second Preview) (JEP 464)
👉 Foreign Function & Memory API (JEP 454)
Много других изменений и подробнее в статье
#java
Вышел Gradle 8.8:
👉 Поддержка Java 22
👉 Конфигурация JVM демона Gradle через toolchain
👉 Скорость работы больших проектов в IDE увеличена (наблюдали ускорение на 12% с проекте с 15 000 Gradle тасков)
👉 Version Catalog позволяет объявлять плагины без версий
👉 Новые методы-callback жизненного цикла GradleLifecycle
👉 Изолированные проекты через Project.getIsolated() - доступ только к свойствам проекта что не задевают другие проекты. В будущем позволит значительно ускорить параллельную сборку
#gradle
👉 Поддержка Java 22
👉 Конфигурация JVM демона Gradle через toolchain
👉 Скорость работы больших проектов в IDE увеличена (наблюдали ускорение на 12% с проекте с 15 000 Gradle тасков)
👉 Version Catalog позволяет объявлять плагины без версий
👉 Новые методы-callback жизненного цикла GradleLifecycle
👉 Изолированные проекты через Project.getIsolated() - доступ только к свойствам проекта что не задевают другие проекты. В будущем позволит значительно ускорить параллельную сборку
#gradle
JSpecify — стандартизация Java-аннотаций для статического анализа кода и взаимодействия между языками JVM.
Если вы знакомы с Java или изучали исходный код, то одним из решений проблемы null является использование аннотаций nullability. Однако реализаций таких аннотаций много: JetBrains, Android Jetpack, Spring, Uber и другие создали свои версии.
Решений очень много, и возникла проблема выбора и поддержки. Хотелось бы иметь стандарт в Java, но договориться не удалось.
Консорциум компаний и команд из Google, JetBrains, Meta, Kotlin, Android, Spring, PMD, Sonar, EISOP и других объединился и создал единый стандарт, который обязуются поддерживать в своих решениях.
JSpecify 1.0 сосредоточен на nullability и содержит четыре аннотации: @NonNull, @Nullable, @NullMarked, @NullUnmarked.
Интеграция уже началась в библиотеки Jetpack Android и Kotlin.
#java
Если вы знакомы с Java или изучали исходный код, то одним из решений проблемы null является использование аннотаций nullability. Однако реализаций таких аннотаций много: JetBrains, Android Jetpack, Spring, Uber и другие создали свои версии.
Решений очень много, и возникла проблема выбора и поддержки. Хотелось бы иметь стандарт в Java, но договориться не удалось.
Консорциум компаний и команд из Google, JetBrains, Meta, Kotlin, Android, Spring, PMD, Sonar, EISOP и других объединился и создал единый стандарт, который обязуются поддерживать в своих решениях.
JSpecify 1.0 сосредоточен на nullability и содержит четыре аннотации: @NonNull, @Nullable, @NullMarked, @NullUnmarked.
Интеграция уже началась в библиотеки Jetpack Android и Kotlin.
#java
Вышел Dagger 2.56
В новой версии Dagger нет новых фичей, а вот то что может сломать код есть
👉 В рамках поддержки Jakarta: удалили старый способ создания Factory (возможно, отвалится код под старые версии Dagger) и больше нельзя использоваться dagger.internal.Provider
👉 В Kotlin исходниках при использовании для multibinding теперь НАДО использовать Set/MAP из kotlin.collections, а не версии из java.util
🛠 Исправили немного багов
#di #java
В новой версии Dagger нет новых фичей, а вот то что может сломать код есть
👉 В рамках поддержки Jakarta: удалили старый способ создания Factory (возможно, отвалится код под старые версии Dagger) и больше нельзя использоваться dagger.internal.Provider
👉 В Kotlin исходниках при использовании для multibinding теперь НАДО использовать Set/MAP из kotlin.collections, а не версии из java.util
🛠 Исправили немного багов
#di #java
Язык от Apple развивается с поддержкой других платформ. Можно попробовать ранний прототип интерорпа в обе стороны для работы с Java.
Язык постепенно ступает на территорию Kotlin. Про аналог мультиплафтормы конечно не говорится пока, но чем чёрт не щутит
#swift #java
Please open Telegram to view this post
VIEW IN TELEGRAM