home.social

#java_core — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #java_core, aggregated by home.social.

  1. [Перевод] Kotlin переходит к деструктурированию по именам

    В Kotlin деструктурирование выглядело так: val (name, age) = person . Но компилятор берет значения не по именам, а по позиции component1/component2 . Отсюда проблемы. Если поменяли порядок параметров в data class или сделали age вычисляемым свойством: то та же строка начинает доставать другое поле. Причем иногда код даже скомпилируется, но, конечно, смысл изменится: val (age, name) = person . И вот теперь Kotlin эксперементально переводит круглые скобки на деструктурирование по имени. Синтаксис будет такой: (val name, val age) = person . И порядок внутри скобок не важен. Переименование явно: (val years = age, val theName = name) = person . Позиционное же деструктурирование остается, но переезжает в квадратные скобки для Pair/Triple и коллекций: val [x, y] = point . Разбираемся полностью в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #spring_boot #java_core #kotlin_multiplatform #kotlin_dsl

  2. [Перевод] Kotlin переходит к деструктурированию по именам

    В Kotlin деструктурирование выглядело так: val (name, age) = person . Но компилятор берет значения не по именам, а по позиции component1/component2 . Отсюда проблемы. Если поменяли порядок параметров в data class или сделали age вычисляемым свойством: то та же строка начинает доставать другое поле. Причем иногда код даже скомпилируется, но, конечно, смысл изменится: val (age, name) = person . И вот теперь Kotlin эксперементально переводит круглые скобки на деструктурирование по имени. Синтаксис будет такой: (val name, val age) = person . И порядок внутри скобок не важен. Переименование явно: (val years = age, val theName = name) = person . Позиционное же деструктурирование остается, но переезжает в квадратные скобки для Pair/Triple и коллекций: val [x, y] = point . Разбираемся полностью в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #spring_boot #java_core #kotlin_multiplatform #kotlin_dsl

  3. [Перевод] Kotlin переходит к деструктурированию по именам

    В Kotlin деструктурирование выглядело так: val (name, age) = person . Но компилятор берет значения не по именам, а по позиции component1/component2 . Отсюда проблемы. Если поменяли порядок параметров в data class или сделали age вычисляемым свойством: то та же строка начинает доставать другое поле. Причем иногда код даже скомпилируется, но, конечно, смысл изменится: val (age, name) = person . И вот теперь Kotlin эксперементально переводит круглые скобки на деструктурирование по имени. Синтаксис будет такой: (val name, val age) = person . И порядок внутри скобок не важен. Переименование явно: (val years = age, val theName = name) = person . Позиционное же деструктурирование остается, но переезжает в квадратные скобки для Pair/Triple и коллекций: val [x, y] = point . Разбираемся полностью в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #spring_boot #java_core #kotlin_multiplatform #kotlin_dsl

  4. [Перевод] Kotlin переходит к деструктурированию по именам

    В Kotlin деструктурирование выглядело так: val (name, age) = person . Но компилятор берет значения не по именам, а по позиции component1/component2 . Отсюда проблемы. Если поменяли порядок параметров в data class или сделали age вычисляемым свойством: то та же строка начинает доставать другое поле. Причем иногда код даже скомпилируется, но, конечно, смысл изменится: val (age, name) = person . И вот теперь Kotlin эксперементально переводит круглые скобки на деструктурирование по имени. Синтаксис будет такой: (val name, val age) = person . И порядок внутри скобок не важен. Переименование явно: (val years = age, val theName = name) = person . Позиционное же деструктурирование остается, но переезжает в квадратные скобки для Pair/Triple и коллекций: val [x, y] = point . Разбираемся полностью в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #spring_boot #java_core #kotlin_multiplatform #kotlin_dsl

  5. [Перевод] Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)

    Records, pattern matching и sealed-типы сделали Java куда более «функциональной» — читать вложенные данные стало легко и красиво. Но как только вам нужно изменить что-то глубоко внутри неизменяемой структуры, начинается боль: каскад пересоздания records, копирование полей, десятки строк ради одного изменения. В новом переводе от команды Spring АйО рассмотрим, почему у современной Java всё ещё есть пробел в истории неизменяемости — и как оптики закрывают его. Если pattern matching — это про элегантное чтение , то оптики дают то, чего так не хватает, — композиционную запись : определили путь один раз и дальше меняете вложенные поля одной строкой, без ручной реконструкции и без циклов.

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #optics #java_core #spring #spring_framework #spring_boot

  6. [Перевод] Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)

    Records, pattern matching и sealed-типы сделали Java куда более «функциональной» — читать вложенные данные стало легко и красиво. Но как только вам нужно изменить что-то глубоко внутри неизменяемой структуры, начинается боль: каскад пересоздания records, копирование полей, десятки строк ради одного изменения. В новом переводе от команды Spring АйО рассмотрим, почему у современной Java всё ещё есть пробел в истории неизменяемости — и как оптики закрывают его. Если pattern matching — это про элегантное чтение , то оптики дают то, чего так не хватает, — композиционную запись : определили путь один раз и дальше меняете вложенные поля одной строкой, без ручной реконструкции и без циклов.

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #optics #java_core #spring #spring_framework #spring_boot

  7. [Перевод] Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)

    Records, pattern matching и sealed-типы сделали Java куда более «функциональной» — читать вложенные данные стало легко и красиво. Но как только вам нужно изменить что-то глубоко внутри неизменяемой структуры, начинается боль: каскад пересоздания records, копирование полей, десятки строк ради одного изменения. В новом переводе от команды Spring АйО рассмотрим, почему у современной Java всё ещё есть пробел в истории неизменяемости — и как оптики закрывают его. Если pattern matching — это про элегантное чтение , то оптики дают то, чего так не хватает, — композиционную запись : определили путь один раз и дальше меняете вложенные поля одной строкой, без ручной реконструкции и без циклов.

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #optics #java_core #spring #spring_framework #spring_boot

  8. [Перевод] Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)

    Records, pattern matching и sealed-типы сделали Java куда более «функциональной» — читать вложенные данные стало легко и красиво. Но как только вам нужно изменить что-то глубоко внутри неизменяемой структуры, начинается боль: каскад пересоздания records, копирование полей, десятки строк ради одного изменения. В новом переводе от команды Spring АйО рассмотрим, почему у современной Java всё ещё есть пробел в истории неизменяемости — и как оптики закрывают его. Если pattern matching — это про элегантное чтение , то оптики дают то, чего так не хватает, — композиционную запись : определили путь один раз и дальше меняете вложенные поля одной строкой, без ручной реконструкции и без циклов.

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #optics #java_core #spring #spring_framework #spring_boot

  9. [Перевод] Hidden классы в Java. Что скрывают Lambda выражения

    С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass . Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe , они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #java_core #spring #spring_boot #spring_framework #springboot #spring_data

  10. [Перевод] Hidden классы в Java. Что скрывают Lambda выражения

    С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass . Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe , они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #java_core #spring #spring_boot #spring_framework #springboot #spring_data

  11. [Перевод] Hidden классы в Java. Что скрывают Lambda выражения

    С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass . Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe , они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #java_core #spring #spring_boot #spring_framework #springboot #spring_data

  12. [Перевод] Hidden классы в Java. Что скрывают Lambda выражения

    С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass . Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe , они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #java_core #spring #spring_boot #spring_framework #springboot #spring_data

  13. Обучение без отрыва от работы: кейс РТЛабс

    Привет, Хабр! На связи Дмитрий Пирумов, руководитель подразделения QA РТЛабс. В этой статье хочу поделиться опытом развития внутреннего обучения — как, зачем и почему мы создали корпоративную школу автоматизированного тестирования. Наш опыт будет полезен, если нужно организовать внутреннее обучение и вы ищете ответ, как решить эту задачу.

    habr.com/ru/companies/rtlabs/a

    #обучение_тестированию #внутреннее_обучение #автоматизированное_тестирование #организация_обучения #automation_approach #java_core

  14. Обучение без отрыва от работы: кейс РТЛабс

    Привет, Хабр! На связи Дмитрий Пирумов, руководитель подразделения QA РТЛабс. В этой статье хочу поделиться опытом развития внутреннего обучения — как, зачем и почему мы создали корпоративную школу автоматизированного тестирования. Наш опыт будет полезен, если нужно организовать внутреннее обучение и вы ищете ответ, как решить эту задачу.

    habr.com/ru/companies/rtlabs/a

    #обучение_тестированию #внутреннее_обучение #автоматизированное_тестирование #организация_обучения #automation_approach #java_core

  15. Обучение без отрыва от работы: кейс РТЛабс

    Привет, Хабр! На связи Дмитрий Пирумов, руководитель подразделения QA РТЛабс. В этой статье хочу поделиться опытом развития внутреннего обучения — как, зачем и почему мы создали корпоративную школу автоматизированного тестирования. Наш опыт будет полезен, если нужно организовать внутреннее обучение и вы ищете ответ, как решить эту задачу.

    habr.com/ru/companies/rtlabs/a

    #обучение_тестированию #внутреннее_обучение #автоматизированное_тестирование #организация_обучения #automation_approach #java_core

  16. Обучение без отрыва от работы: кейс РТЛабс

    Привет, Хабр! На связи Дмитрий Пирумов, руководитель подразделения QA РТЛабс. В этой статье хочу поделиться опытом развития внутреннего обучения — как, зачем и почему мы создали корпоративную школу автоматизированного тестирования. Наш опыт будет полезен, если нужно организовать внутреннее обучение и вы ищете ответ, как решить эту задачу.

    habr.com/ru/companies/rtlabs/a

    #обучение_тестированию #внутреннее_обучение #автоматизированное_тестирование #организация_обучения #automation_approach #java_core

  17. Java 25 выходит уже сегодня

    Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре». Встречайте 25 версию Java вместе с командой Spring АйО !

    habr.com/ru/companies/spring_a

    #java #kotlin #oracle #java_core #java_25 #spring #spring_boot #spring_framework #springboot #core

  18. Java 25 выходит уже сегодня

    Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре». Встречайте 25 версию Java вместе с командой Spring АйО !

    habr.com/ru/companies/spring_a

    #java #kotlin #oracle #java_core #java_25 #spring #spring_boot #spring_framework #springboot #core

  19. Java 25 выходит уже сегодня

    Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре». Встречайте 25 версию Java вместе с командой Spring АйО !

    habr.com/ru/companies/spring_a

    #java #kotlin #oracle #java_core #java_25 #spring #spring_boot #spring_framework #springboot #core

  20. Java 25 выходит уже сегодня

    Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре». Встречайте 25 версию Java вместе с командой Spring АйО !

    habr.com/ru/companies/spring_a

    #java #kotlin #oracle #java_core #java_25 #spring #spring_boot #spring_framework #springboot #core

  21. JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

    Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa

  22. JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

    Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa

  23. JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

    Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa

  24. JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

    Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa

  25. [Перевод] Structured Concurrency в Java: наконец-то находит опору

    API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open() , политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa

  26. [Перевод] Structured Concurrency в Java: наконец-то находит опору

    API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open() , политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa

  27. [Перевод] Structured Concurrency в Java: наконец-то находит опору

    API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open() , политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa

  28. [Перевод] Structured Concurrency в Java: наконец-то находит опору

    API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open() , политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.

    habr.com/ru/companies/spring_a

    #java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa

  29. [Перевод] Очистите свою память: от Finalize к Cleaner

    Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов. Без надлежащего управления могут возникнуть утечки ресурсов, что приведет к снижению производительности или сбоям. Java Cleaner API , представленный в Java 9, обеспечивает современный и эффективный механизм очистки ресурсов, когда объекты больше не доступны. Он устраняет недостатки устаревшего метода finalize(), предлагая предсказуемый и эффективный способ управления ресурсами, не связанными с памятью: поэтому давайте совершим небольшой экскурс по методам очистки памяти от finalize до Cleaner API.

    habr.com/ru/articles/911046/

    #java_core

  30. [Перевод] Очистите свою память: от Finalize к Cleaner

    Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов. Без надлежащего управления могут возникнуть утечки ресурсов, что приведет к снижению производительности или сбоям. Java Cleaner API , представленный в Java 9, обеспечивает современный и эффективный механизм очистки ресурсов, когда объекты больше не доступны. Он устраняет недостатки устаревшего метода finalize(), предлагая предсказуемый и эффективный способ управления ресурсами, не связанными с памятью: поэтому давайте совершим небольшой экскурс по методам очистки памяти от finalize до Cleaner API.

    habr.com/ru/articles/911046/

    #java_core

  31. [Перевод] Очистите свою память: от Finalize к Cleaner

    Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов. Без надлежащего управления могут возникнуть утечки ресурсов, что приведет к снижению производительности или сбоям. Java Cleaner API , представленный в Java 9, обеспечивает современный и эффективный механизм очистки ресурсов, когда объекты больше не доступны. Он устраняет недостатки устаревшего метода finalize(), предлагая предсказуемый и эффективный способ управления ресурсами, не связанными с памятью: поэтому давайте совершим небольшой экскурс по методам очистки памяти от finalize до Cleaner API.

    habr.com/ru/articles/911046/

    #java_core

  32. [Перевод] Очистите свою память: от Finalize к Cleaner

    Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов. Без надлежащего управления могут возникнуть утечки ресурсов, что приведет к снижению производительности или сбоям. Java Cleaner API , представленный в Java 9, обеспечивает современный и эффективный механизм очистки ресурсов, когда объекты больше не доступны. Он устраняет недостатки устаревшего метода finalize(), предлагая предсказуемый и эффективный способ управления ресурсами, не связанными с памятью: поэтому давайте совершим небольшой экскурс по методам очистки памяти от finalize до Cleaner API.

    habr.com/ru/articles/911046/

    #java_core

  33. [Перевод] В центре внимания Java: Local Variable Type Inference

    Мы (команда Axiom JDK) подготовили перевод статьи про var, или Local Variable Type Inference (LVTI). Из этой статьи вы узнаете как работает var, когда эту фичу лучше использовать в коде, а когда — воздержаться. Всё это с примерами кода и комментариями от нашей команды. Примечание от команды Axiom JDK: Хотя статья написана в 2019 году, она остаётся актуальной в 2025: var (Local Variable Type Inference) уже давно является частью LTS-релизов и ключевой особенностью современного Java-кода, но по-прежнему вызывает споры и вопросы даже у опытных разработчиков. Это отличный материал от Брайана Гётца — одного из архитекторов Java — с разбором принципов, которые не устарели. С тех пор появилось больше практики, но базовая теория осталась неизменной. Мы публикуем перевод как удобный справочник по механике var, его компромиссам и подводным камням.

    habr.com/ru/companies/axiomjdk

    #var #lvti #java #java_core #java_10 #axiom_jdk #axiomjdk #spring #type_inference

  34. [Перевод] В центре внимания Java: Local Variable Type Inference

    Мы (команда Axiom JDK) подготовили перевод статьи про var, или Local Variable Type Inference (LVTI). Из этой статьи вы узнаете как работает var, когда эту фичу лучше использовать в коде, а когда — воздержаться. Всё это с примерами кода и комментариями от нашей команды. Примечание от команды Axiom JDK: Хотя статья написана в 2019 году, она остаётся актуальной в 2025: var (Local Variable Type Inference) уже давно является частью LTS-релизов и ключевой особенностью современного Java-кода, но по-прежнему вызывает споры и вопросы даже у опытных разработчиков. Это отличный материал от Брайана Гётца — одного из архитекторов Java — с разбором принципов, которые не устарели. С тех пор появилось больше практики, но базовая теория осталась неизменной. Мы публикуем перевод как удобный справочник по механике var, его компромиссам и подводным камням.

    habr.com/ru/companies/axiomjdk

    #var #lvti #java #java_core #java_10 #axiom_jdk #axiomjdk #spring #type_inference

  35. [Перевод] В центре внимания Java: Local Variable Type Inference

    Мы (команда Axiom JDK) подготовили перевод статьи про var, или Local Variable Type Inference (LVTI). Из этой статьи вы узнаете как работает var, когда эту фичу лучше использовать в коде, а когда — воздержаться. Всё это с примерами кода и комментариями от нашей команды. Примечание от команды Axiom JDK: Хотя статья написана в 2019 году, она остаётся актуальной в 2025: var (Local Variable Type Inference) уже давно является частью LTS-релизов и ключевой особенностью современного Java-кода, но по-прежнему вызывает споры и вопросы даже у опытных разработчиков. Это отличный материал от Брайана Гётца — одного из архитекторов Java — с разбором принципов, которые не устарели. С тех пор появилось больше практики, но базовая теория осталась неизменной. Мы публикуем перевод как удобный справочник по механике var, его компромиссам и подводным камням.

    habr.com/ru/companies/axiomjdk

    #var #lvti #java #java_core #java_10 #axiom_jdk #axiomjdk #spring #type_inference

  36. [Перевод] В центре внимания Java: Local Variable Type Inference

    Мы (команда Axiom JDK) подготовили перевод статьи про var, или Local Variable Type Inference (LVTI). Из этой статьи вы узнаете как работает var, когда эту фичу лучше использовать в коде, а когда — воздержаться. Всё это с примерами кода и комментариями от нашей команды. Примечание от команды Axiom JDK: Хотя статья написана в 2019 году, она остаётся актуальной в 2025: var (Local Variable Type Inference) уже давно является частью LTS-релизов и ключевой особенностью современного Java-кода, но по-прежнему вызывает споры и вопросы даже у опытных разработчиков. Это отличный материал от Брайана Гётца — одного из архитекторов Java — с разбором принципов, которые не устарели. С тех пор появилось больше практики, но базовая теория осталась неизменной. Мы публикуем перевод как удобный справочник по механике var, его компромиссам и подводным камням.

    habr.com/ru/companies/axiomjdk

    #var #lvti #java #java_core #java_10 #axiom_jdk #axiomjdk #spring #type_inference

  37. Чего ждёт рынок от java-разработчика уровня middle

    Привет! Меня зовут Игорь Честнов, я автор на курсе

    habr.com/ru/companies/yandex_p

    #java_core #java_concurrency #java #джава #роадмап #скиллы

  38. Чего ждёт рынок от java-разработчика уровня middle

    Привет! Меня зовут Игорь Честнов, я автор на курсе

    habr.com/ru/companies/yandex_p

    #java_core #java_concurrency #java #джава #роадмап #скиллы

  39. Чего ждёт рынок от java-разработчика уровня middle

    Привет! Меня зовут Игорь Честнов, я автор на курсе

    habr.com/ru/companies/yandex_p

    #java_core #java_concurrency #java #джава #роадмап #скиллы

  40. Чего ждёт рынок от java-разработчика уровня middle

    Привет! Меня зовут Игорь Честнов, я автор на курсе

    habr.com/ru/companies/yandex_p

    #java_core #java_concurrency #java #джава #роадмап #скиллы

  41. Паттерны или химеры программирования

    Данная статья будет полезна для Junior / Middle Java разработчиков, которые готовятся к собеседованию или просто развиваются и хотят немного конкретики по части паттернов, и так как в данной статье я покажу 5 паттернов, с которыми мы как разработчики работаем в Java Core, с самого начала нашего пути, то они точно останутся в вашей голове и при последующем написании кода будут только всплывать и крепнуть. И даже просто, не знать что они это они - это не хорошо.

    habr.com/ru/articles/804339/

    #java_core #паттерны_проектирования #собеседование #собеседование_вопросы

  42. Паттерны или химеры программирования

    Данная статья будет полезна для Junior / Middle Java разработчиков, которые готовятся к собеседованию или просто развиваются и хотят немного конкретики по части паттернов, и так как в данной статье я покажу 5 паттернов, с которыми мы как разработчики работаем в Java Core, с самого начала нашего пути, то они точно останутся в вашей голове и при последующем написании кода будут только всплывать и крепнуть. И даже просто, не знать что они это они - это не хорошо.

    habr.com/ru/articles/804339/

    #java_core #паттерны_проектирования #собеседование #собеседование_вопросы

  43. Паттерны или химеры программирования

    Данная статья будет полезна для Junior / Middle Java разработчиков, которые готовятся к собеседованию или просто развиваются и хотят немного конкретики по части паттернов, и так как в данной статье я покажу 5 паттернов, с которыми мы как разработчики работаем в Java Core, с самого начала нашего пути, то они точно останутся в вашей голове и при последующем написании кода будут только всплывать и крепнуть. И даже просто, не знать что они это они - это не хорошо.

    habr.com/ru/articles/804339/

    #java_core #паттерны_проектирования #собеседование #собеседование_вопросы

  44. Задачи от Tinkoff для Junior Java developers

    Отличная тренировка для начинающих разработчиков на знание Java core. В статье будет представлено описание 5 задач с разным уровнем сложности. Надеюсь, эти задачи будут хорошей тренировкой для тебя и ты сможешь закрепить свои знания на практике. Позже появится мое решение на GitHub .

    habr.com/ru/articles/794588/

    #java #tasks #tinkoff #java_core

  45. Задачи от Tinkoff для Junior Java developers

    Отличная тренировка для начинающих разработчиков на знание Java core. В статье будет представлено описание 5 задач с разным уровнем сложности. Надеюсь, эти задачи будут хорошей тренировкой для тебя и ты сможешь закрепить свои знания на практике. Позже появится мое решение на GitHub .

    habr.com/ru/articles/794588/

    #java #tasks #tinkoff #java_core