Разбираемся с динамической памятью (кучей) в приложениях Java
Начнём с простого вопроса. В самом ли деле каждый Java-разработчик понимает, как в Java работает память? Одна из обязанностей любого Java-разработчика — гарантировать, что в результате тонкой настройки приложения на Java из него получится выжать такую производительность, какую только возможно. Требуется время, чтобы научиться управлять памятью в Java и понять этот процесс, это касается всех, кто имеет дело с Java. В этой статье попробую объяснить, как овладеть этими умениями.
Читать: https://habr.com/ru/companies/piter/articles/810707/?utm_campaign=810707
@a_cup_of_java
Начнём с простого вопроса. В самом ли деле каждый Java-разработчик понимает, как в Java работает память? Одна из обязанностей любого Java-разработчика — гарантировать, что в результате тонкой настройки приложения на Java из него получится выжать такую производительность, какую только возможно. Требуется время, чтобы научиться управлять памятью в Java и понять этот процесс, это касается всех, кто имеет дело с Java. В этой статье попробую объяснить, как овладеть этими умениями.
Читать: https://habr.com/ru/companies/piter/articles/810707/?utm_campaign=810707
@a_cup_of_java
Отправка сообщения в несколько слушателей Kafka одновременно
В этой статье описывается способ отправки сообщения в несколько слушателей Kafka одновременно. Несколько слушателей будут получать одно и то же сообщение, от одного и того же отправителя сообщений, в данной реализации решения.
Логика реализована с использованием Java, Spring и Kafka.
Читать: https://habr.com/ru/articles/811087/?utm_campaign=811087
@a_cup_of_java
В этой статье описывается способ отправки сообщения в несколько слушателей Kafka одновременно. Несколько слушателей будут получать одно и то же сообщение, от одного и того же отправителя сообщений, в данной реализации решения.
Логика реализована с использованием Java, Spring и Kafka.
Читать: https://habr.com/ru/articles/811087/?utm_campaign=811087
@a_cup_of_java
Devnexus 2024 Celebrates 20 Years of Java Developer Conferences
Celebrating its 20th year, Devnexus 2024 was held from April 9-11, 2024 at the Georgia World Congress Center in Atlanta, Georgia. The event featured speakers from the Java community who delivered workshops and talks on tracks such as: Agile; Architecture; Artificial Intelligence; Cloud Technology; Core Java; Jakarta EE; Core Java; and Security.
By Michael Redlich
Read: https://www.infoq.com/news/2024/04/devnexus-2024/
@a_cup_of_java
Celebrating its 20th year, Devnexus 2024 was held from April 9-11, 2024 at the Georgia World Congress Center in Atlanta, Georgia. The event featured speakers from the Java community who delivered workshops and talks on tracks such as: Agile; Architecture; Artificial Intelligence; Cloud Technology; Core Java; Jakarta EE; Core Java; and Security.
By Michael Redlich
Read: https://www.infoq.com/news/2024/04/devnexus-2024/
@a_cup_of_java
Управление схемами в Kafka с использованием Schema Registry
Apache Kafka является мощным инструментом для обработки и передачи потоковых данных в реальном времени, который находит широкое применение в различных индустриях для обработки огромных объемов данных с низкой задержкой. В центре этой платформы лежит способность эффективно распределять данные между множеством производителей (producers) и потребителей (consumers), при этом поддерживая высокую пропускную способность и масштабируемость. Однако, с увеличением количества и разнообразия данных, возникает необходимость в управлении структурами этих данных, что обеспечивает Schema Registry. Этот компонент является критически важным для поддержания согласованности данных в Kafka, поскольку он управляет схемами сообщений и обеспечивает совместимость между различными версиями схем, что позволяет системам бесперебойно обмениваться данными даже при изменении структуры сообщений.
Читать: https://habr.com/ru/articles/811283/?utm_campaign=811283
@a_cup_of_java
Apache Kafka является мощным инструментом для обработки и передачи потоковых данных в реальном времени, который находит широкое применение в различных индустриях для обработки огромных объемов данных с низкой задержкой. В центре этой платформы лежит способность эффективно распределять данные между множеством производителей (producers) и потребителей (consumers), при этом поддерживая высокую пропускную способность и масштабируемость. Однако, с увеличением количества и разнообразия данных, возникает необходимость в управлении структурами этих данных, что обеспечивает Schema Registry. Этот компонент является критически важным для поддержания согласованности данных в Kafka, поскольку он управляет схемами сообщений и обеспечивает совместимость между различными версиями схем, что позволяет системам бесперебойно обмениваться данными даже при изменении структуры сообщений.
Читать: https://habr.com/ru/articles/811283/?utm_campaign=811283
@a_cup_of_java
Принципы SOLID, только понятно
Когда я только знакомился с принципами SOLID, я искал понятные статьи на Хабр. При этом пришлось прочитать не одну статью, и полное понимание пришло сильно позже. Хотелось бы, чтобы новички на более простых примерах смогли почувствовать, о чем эти принципы.
Изучить принципы
Читать: https://habr.com/ru/articles/811305/?utm_campaign=811305
@a_cup_of_java
Когда я только знакомился с принципами SOLID, я искал понятные статьи на Хабр. При этом пришлось прочитать не одну статью, и полное понимание пришло сильно позже. Хотелось бы, чтобы новички на более простых примерах смогли почувствовать, о чем эти принципы.
Изучить принципы
Читать: https://habr.com/ru/articles/811305/?utm_campaign=811305
@a_cup_of_java
Java News Roundup: WildFly 32, JEPs Proposed to Target for JDK 23, Hibernate 6.5, JobRunr 7.1
This week's Java roundup for April 22nd, 2024 features news highlighting: the release of WildFly 32; JEP 476, Module Import Declarations (Preview), JEP 474, ZGC: Generational Mode by Default, and JEP 467, Markdown Documentation Comments, proposed to target for JDK 23; Hibernate ORM 6.5; and JobRunr 7.1.
By Michael Redlich
Read: https://www.infoq.com/news/2024/04/java-news-roundup-apr22-2024/
@a_cup_of_java
This week's Java roundup for April 22nd, 2024 features news highlighting: the release of WildFly 32; JEP 476, Module Import Declarations (Preview), JEP 474, ZGC: Generational Mode by Default, and JEP 467, Markdown Documentation Comments, proposed to target for JDK 23; Hibernate ORM 6.5; and JobRunr 7.1.
By Michael Redlich
Read: https://www.infoq.com/news/2024/04/java-news-roundup-apr22-2024/
@a_cup_of_java
Делаем из битого планшета одноплатник: подключаем Android-устройства к дешевым микроконтроллерам через UART
В наше время, из-за санкций одноплатники стали стоить каких-то «конских» денег. Даже б/у RaspberryPi Zero стоит 2-3 тысячи рублей на барахолках, что, мягко скажем, не совсем лояльная цена для «самого дешевого одноплатного компьютера в мире». Конечно, Orange Pi Zero всё ещё можно купить в пределах 1.500-2.000 рублей, но как по мне и эта цена не слишком лояльна за те характеристики, который предлагает такой одноплатник. С другой стороны, Android-планшеты 10-летней давности продаются на барахолках по 100-300 рублей, что выглядит гораздо привлекательнее, причём на некоторые устройства практически без костылей можно установить полноценный дистрибутив Linux! Вероятно, многие читатели скажут мол «автор бомж» и будут правы: ведь в рамках этой статьи, я хочу рассказать о том, как использовать полурабочий древний планшет в качестве полноценного одноплатника путём подключения его к микроконтроллеру и выводу GPIO! Сегодня мы с вами: узнаем, как подключить микроконтроллер к шине UART в планшете и научимся работать с последовательной шиной в Android прямо из Java и нативных программ. Интересна моя концепция антикризисного одноплатника? Тогда добро пожаловать под кат!
Читать: https://habr.com/ru/companies/timeweb/articles/810457/?utm_campaign=810457
@a_cup_of_java
В наше время, из-за санкций одноплатники стали стоить каких-то «конских» денег. Даже б/у RaspberryPi Zero стоит 2-3 тысячи рублей на барахолках, что, мягко скажем, не совсем лояльная цена для «самого дешевого одноплатного компьютера в мире». Конечно, Orange Pi Zero всё ещё можно купить в пределах 1.500-2.000 рублей, но как по мне и эта цена не слишком лояльна за те характеристики, который предлагает такой одноплатник. С другой стороны, Android-планшеты 10-летней давности продаются на барахолках по 100-300 рублей, что выглядит гораздо привлекательнее, причём на некоторые устройства практически без костылей можно установить полноценный дистрибутив Linux! Вероятно, многие читатели скажут мол «автор бомж» и будут правы: ведь в рамках этой статьи, я хочу рассказать о том, как использовать полурабочий древний планшет в качестве полноценного одноплатника путём подключения его к микроконтроллеру и выводу GPIO! Сегодня мы с вами: узнаем, как подключить микроконтроллер к шине UART в планшете и научимся работать с последовательной шиной в Android прямо из Java и нативных программ. Интересна моя концепция антикризисного одноплатника? Тогда добро пожаловать под кат!
Читать: https://habr.com/ru/companies/timeweb/articles/810457/?utm_campaign=810457
@a_cup_of_java
Топ-21 вопрос для собеседования по строковому программированию и кодированию с решениями
В этой статье я расскажу о 21 самом распространенном вопросе по программированию и кодированию на основе строк, который задают на собеседованиях Java-разработчики. Эти вопросы требуют от вас написания кода для решения проблемы, и они отличаются от традиционных вопросов о строках на Java, таких как " Как работает метод подстроки в Java? " или " Когда использовать метод intern() для строки в Java?" Поскольку кодирование и решение задач являются важной частью любого собеседования по программированию, крайне важно, чтобы вы умели решать их вовремя и в напряженной ситуации, а это возможно только после практики с правильным набором вопросов. Поскольку эти вопросы уже опробованы и встречались на многих собеседованиях, они дадут вам опыт, необходимый для успешного прохождения собеседования по кодингу.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2018/04/21-string-programming-and-coding-interview-questions-answers.html
@a_cup_of_java
В этой статье я расскажу о 21 самом распространенном вопросе по программированию и кодированию на основе строк, который задают на собеседованиях Java-разработчики. Эти вопросы требуют от вас написания кода для решения проблемы, и они отличаются от традиционных вопросов о строках на Java, таких как " Как работает метод подстроки в Java? " или " Когда использовать метод intern() для строки в Java?" Поскольку кодирование и решение задач являются важной частью любого собеседования по программированию, крайне важно, чтобы вы умели решать их вовремя и в напряженной ситуации, а это возможно только после практики с правильным набором вопросов. Поскольку эти вопросы уже опробованы и встречались на многих собеседованиях, они дадут вам опыт, необходимый для успешного прохождения собеседования по кодингу.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2018/04/21-string-programming-and-coding-interview-questions-answers.html
@a_cup_of_java
Как использовать операторы JavaScript в своих программах
Read: https://www.infoworld.com/article/2077317/understanding-and-using-javascript-statements.html#tk.rss_java
@a_cup_of_java
Read: https://www.infoworld.com/article/2077317/understanding-and-using-javascript-statements.html#tk.rss_java
@a_cup_of_java
Java 17 - самая используемая LTS-версия Java - отчет
Read: https://www.infoworld.com/article/3715425/java-17-is-most-used-lts-version-of-java-report.html#tk.rss_java
@a_cup_of_java
Read: https://www.infoworld.com/article/3715425/java-17-is-most-used-lts-version-of-java-report.html#tk.rss_java
@a_cup_of_java
Перемещение указателя на смещение в Kafka
В данной статье описывается задача, в которой необходимо слушать сообщения с определенного смещения(offset) в Kafka. Для решения данной задачи потребуется интерфейс ConsumerSeekAware и найти позицию с которой нужно начать слушание. Так же необходимо будет создать механизм перезапуска слушателя сообщений Kafka. В примерах кода используются Java и Spring фреймворк.
Читать: https://habr.com/ru/articles/811621/?utm_campaign=811621
@a_cup_of_java
В данной статье описывается задача, в которой необходимо слушать сообщения с определенного смещения(offset) в Kafka. Для решения данной задачи потребуется интерфейс ConsumerSeekAware и найти позицию с которой нужно начать слушание. Так же необходимо будет создать механизм перезапуска слушателя сообщений Kafka. В примерах кода используются Java и Spring фреймворк.
Читать: https://habr.com/ru/articles/811621/?utm_campaign=811621
@a_cup_of_java
Spring Boot Starter: практически, принципиально и подробнее. Part 1
Всем привет, меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. За последние 2 года я написал и выпустил в продакшен более 30 микросервисов. Выдержать столь высокий темп помогло применение общепроектных решений и паттернов разработки.
Общепроектные решения — хорошая практика. Так можно создать единую основу для всех микросервисов, снизить риск ошибок и сосредоточиться на конкретных задачах, связанных с бизнес-логикой наших проектов. К тому же, микросервисы на единой основе легче интегрировать друг с другом, а это важно при разработке сложных систем.
В этом цикле статей я поделюсь выжимкой из материалов, накопленных мною в процессе создания микросервисов. Это будет полезно тем, кто только начинает разбираться, что же такое Spring Boot Starter и с чем его едят.
Первую часть мы посвятим созданию принципиального решения, которое позволит запустить стартер как подключаемую к другому Spring Boot-приложению библиотеку.
Читать: https://habr.com/ru/companies/ru_mts/articles/811693/?utm_campaign=811693
@a_cup_of_java
Всем привет, меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. За последние 2 года я написал и выпустил в продакшен более 30 микросервисов. Выдержать столь высокий темп помогло применение общепроектных решений и паттернов разработки.
Общепроектные решения — хорошая практика. Так можно создать единую основу для всех микросервисов, снизить риск ошибок и сосредоточиться на конкретных задачах, связанных с бизнес-логикой наших проектов. К тому же, микросервисы на единой основе легче интегрировать друг с другом, а это важно при разработке сложных систем.
В этом цикле статей я поделюсь выжимкой из материалов, накопленных мною в процессе создания микросервисов. Это будет полезно тем, кто только начинает разбираться, что же такое Spring Boot Starter и с чем его едят.
Первую часть мы посвятим созданию принципиального решения, которое позволит запустить стартер как подключаемую к другому Spring Boot-приложению библиотеку.
Читать: https://habr.com/ru/companies/ru_mts/articles/811693/?utm_campaign=811693
@a_cup_of_java
Замена календаря на LocalDate в программах на Java
Read: https://www.infoworld.com/article/3715403/replace-calendar-with-localdate-in-java-programs.html#tk.rss_java
@a_cup_of_java
Read: https://www.infoworld.com/article/3715403/replace-calendar-with-localdate-in-java-programs.html#tk.rss_java
@a_cup_of_java
JetBrains IntelliJ IDEA 2024.1 Delivers Support for Java 22 Features
JetBrains released IntelliJ IDEA 2024.1 featuring support for Java 22 features, OpenRewrite, WireMock server, the Maven Shade Plugin and full line code completion for Java and Kotlin.
By Johan Janssen
Read: https://www.infoq.com/news/2024/05/intellij-idea-2024-1/
@a_cup_of_java
JetBrains released IntelliJ IDEA 2024.1 featuring support for Java 22 features, OpenRewrite, WireMock server, the Maven Shade Plugin and full line code completion for Java and Kotlin.
By Johan Janssen
Read: https://www.infoq.com/news/2024/05/intellij-idea-2024-1/
@a_cup_of_java
Что такое Java Spring и как с ним работать
«Фреймворк фреймворков» — так часто называют Java Spring. Зачем он нужен и какие у него есть плюсы и минусы, рассказывает специалист по Java, техлид в финтех-проекте Егор Воронянский.
Читать: https://habr.com/ru/companies/skillfactory/articles/811769/?utm_campaign=811769
@a_cup_of_java
«Фреймворк фреймворков» — так часто называют Java Spring. Зачем он нужен и какие у него есть плюсы и минусы, рассказывает специалист по Java, техлид в финтех-проекте Егор Воронянский.
Читать: https://habr.com/ru/companies/skillfactory/articles/811769/?utm_campaign=811769
@a_cup_of_java
Как начать писать на Java в VSCode
Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.
Тогда зачем пробовать что‑то другое?
Привет, Хабр! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.
В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.
Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.
В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
Перейти на VSCode
Читать: https://habr.com/ru/companies/cdek_blog/articles/811631/?utm_campaign=811631
@a_cup_of_java
Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.
Тогда зачем пробовать что‑то другое?
Привет, Хабр! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.
В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.
Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.
В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
Перейти на VSCode
Читать: https://habr.com/ru/companies/cdek_blog/articles/811631/?utm_campaign=811631
@a_cup_of_java
Для всех искателей Java-приключений
Миру срочно нужны рыцари Java для эпического квеста по созданию новой технологической платформы. Полная свобода выбора инструментов с приличной наградой за подвиги.
Ваш ждут благородные дела:
— Участие в полном цикле разработки
— Проектирование/разработка back-end и API
— Обеспечение чистоты кода, тестирование, код-ревью, релизы
— Анализ и оптимизация производительности.
Вознаграждения:
— 13 зарплат за 12 месяцев
— Одни из лучших условий работы
— ДМС для тебя и твоих близких
Начни увлекательную историю с письма о себе здесь
Миру срочно нужны рыцари Java для эпического квеста по созданию новой технологической платформы. Полная свобода выбора инструментов с приличной наградой за подвиги.
Ваш ждут благородные дела:
— Участие в полном цикле разработки
— Проектирование/разработка back-end и API
— Обеспечение чистоты кода, тестирование, код-ревью, релизы
— Анализ и оптимизация производительности.
Вознаграждения:
— 13 зарплат за 12 месяцев
— Одни из лучших условий работы
— ДМС для тебя и твоих близких
Начни увлекательную историю с письма о себе здесь
5 Примеры map() и flatMap() в Java 8 Stream
Map() и flatMap() - принц и принцесса функционального программирования на Java. Это два мощных метода Stream API, о которых, по моему мнению, должен знать каждый Java-разработчик, а также освоить их. Вы можете использовать map() и flatMap() для преобразования данных, при работе с базами данных, когда вам нужно преобразовать один объект в другой при сохранении или чтении из базы данных. Кроме того, их можно использовать для парсинга и форматирования, а также в тех случаях, когда необходимо удалить код с кодом и сделать конвейер данных более лаконичным. Функция map() используется в функциональном программировании для преобразования каждого элемента потока в другой элемент.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2024/05/5-examples-of-map-and-flatmap-in-java-8.html
@a_cup_of_java
Map() и flatMap() - принц и принцесса функционального программирования на Java. Это два мощных метода Stream API, о которых, по моему мнению, должен знать каждый Java-разработчик, а также освоить их. Вы можете использовать map() и flatMap() для преобразования данных, при работе с базами данных, когда вам нужно преобразовать один объект в другой при сохранении или чтении из базы данных. Кроме того, их можно использовать для парсинга и форматирования, а также в тех случаях, когда необходимо удалить код с кодом и сделать конвейер данных более лаконичным. Функция map() используется в функциональном программировании для преобразования каждого элемента потока в другой элемент.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2024/05/5-examples-of-map-and-flatmap-in-java-8.html
@a_cup_of_java
SOLIDно знать…
SOLID. Принципы и Паттерны. Паттерны и Принципы.
Что может быть ближе друг другу чем эти субстанции ?! Эта статья проведет параллель между ними, она не собирается объяснить суть каждой, вместе или отдельно, а желает показать как одна другой помогает.
То есть, статья в некотором роде перекрестный бой между паттернами и SOLID принципами.
Читать: https://habr.com/ru/articles/811875/?utm_campaign=811875
@a_cup_of_java
SOLID. Принципы и Паттерны. Паттерны и Принципы.
Что может быть ближе друг другу чем эти субстанции ?! Эта статья проведет параллель между ними, она не собирается объяснить суть каждой, вместе или отдельно, а желает показать как одна другой помогает.
То есть, статья в некотором роде перекрестный бой между паттернами и SOLID принципами.
Читать: https://habr.com/ru/articles/811875/?utm_campaign=811875
@a_cup_of_java
JEP 474: Generational Mode Now Standard for ZGC in Java
JEP 474, ZGC: Generational Mode by Default, has also been targeted for JDK 23. This JEP proposes to use the Z Garbage Collector (ZGC) from non-generational to generational mode by default. The non-generational mode will be deprecated and removed in a future JDK release. This will reduce the cost of maintaining the two modes, so future development can primarily focus on Generational ZGC.
By A N M Bazlur Rahman
Read: https://www.infoq.com/news/2024/05/java-zgc-update/
@a_cup_of_java
JEP 474, ZGC: Generational Mode by Default, has also been targeted for JDK 23. This JEP proposes to use the Z Garbage Collector (ZGC) from non-generational to generational mode by default. The non-generational mode will be deprecated and removed in a future JDK release. This will reduce the cost of maintaining the two modes, so future development can primarily focus on Generational ZGC.
By A N M Bazlur Rahman
Read: https://www.infoq.com/news/2024/05/java-zgc-update/
@a_cup_of_java