Чашечка Java
الذهاب إلى القناة على Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
إظهار المزيد8 282
المشتركون
-124 ساعات
-37 أيام
-7130 أيام
أرشيف المشاركات
8 282
9 мифов о Java
С момента первого выпуска Java в 1995 году многое изменилось как в программном, так и в аппаратном обеспечении. Мощные процессоры и более дешевая память позволяют нашим приложениям работать быстрее и обрабатывать большее количество информации. Язык программирования Java все эти годы тоже не стоял на месте и активно развивался, однако успел обрасти мифами. В этой статье мы рассмотрим ряд ложных и устаревших представлений о Java.
Читать: https://habr.com/ru/articles/727108/?utm_campaign=727108
8 282
The changing world of Java
Read: https://www.infoworld.com/article/3690274/the-changing-world-of-java.html#tk.rss_java
8 282
Article: Migrate a RMI-Based Legacy Application to WebSocket
Technical debt, especially in enterprise software, is a relevant problem that developers recurrently have to face. This article provides a use case related to removing technical debt in a large enterprise application based on an old fashioned Remote Method Invocation (RMI) protocol, and migrating it toward modern cloud-aware communication technologies.
By Bartolomeo Sorrentino
Read: https://www.infoq.com/articles/rmi-to-websocket/
8 282
Top 10 IDEs For Java Development In 2023 - Bet of Lot
Hello guys, Are you a Java developer looking for a good IDE (Integrated
Development Environment)? If so, you've come to the right place! With so
many IDEs out there, it can be tough to pick the right one for you. But
don't worry, I've got you covered with a list of the top 10 IDEs for
Java development. For any Java developer, both beginner and experienced, choosing the right Integrated Development Environment (IDE) can make a huge difference in your productivity and overall development experience. With so many options available, it can be difficult to decide which IDE is the best fit for you but if you are in doubt, just choose the IntelliJ IDEA :-) . Anyway, In this article, we will be discussing the top 10 IDEs for Java development in 2023, based on my own experiences and feedback from other developers in the Java community.
Java Interview questions and tutorials
Read: http://www.java67.com/2023/04/top-10-ides-for-java-development-in.html
8 282
Более 80 % компаний из рейтинга самых крупных компаний Fortune 100 используют Kafka
С каждым годом Kafka становится всё более актуальной технологией, а специалисты со знанием Kafka все более востребованными. Kafka выступает «буфером» для нагрузки и позволяет добиться задержек доставки данных в несколько миллисекунд.
Как начать работу с Apache Kafka в приложениях на Spring Boot?
Разберите на открытом уроке 13 апреля в 20:00 мск в OTUS вместе с сертифицированным Java-разработчиком, Сергеем Петрелевичем. Занятие пройдет в рамках онлайн-курса «Apache Kafka» в OTUS.
Что вас ждёт на занятии?
— Рассмотрите, как в приложениях на Spring Boot можно работать с Kafka.
— Узнаете, что предоставляет платформа Spring для ускоренной разработки приложений, работающих с Kafka.
— Посмотрите, какие есть настройки и как это всё конфигурируется.
— Проведёте границу между «родным функционалом» Kafka API и «добавками» от Spring Boot.
Вебинар будет интересен разработчикам, знакомым со Spring Boot и которым интересно узнать, как работать с Kafka.
Продолжить занятия можно на курсе, доступном в рассрочку.
Для участия пройдите вступительное тестирование: https://otus.pw/wVt4/
Реклама ООО «Отус Онлайн-Образование» LjN8KbwFx
8 282
Микросервисы сына маминой подруги. Пишем правильные микросервисные приложения на Java
Всем привет! Сегодня я решил написать статейку про всеми любимые микросервисы. Если вы давно хотели изучить тему микросервисных приложении и актуальных технологии, которые используются для их построения, то данная статья должна вам помочь в этом.
Читать: https://habr.com/ru/articles/726672/?utm_campaign=726672
8 282
Создаем байт-код для JVM без компилятора
Виртуальная машина Java использует концепцию промежуточного байт-кода для обеспечения переносимости между операционными системами и аппаратными платформами. Использование байт-кода позволяет отделить компилятор от среды выполнения и выполнять компиляцию с разных языков программирования для исполнения на JVM. В этой статье мы разберемся с внутренней организацией class-файлов и байт-кода в них и научимся работать с фреймворком ASM для исследования и программной генерации байт-кода для динамического определения новых классов или их компиляции из других языков программирования.
Читать: https://habr.com/ru/companies/otus/articles/726610/?utm_campaign=726610
8 282
Создание и тестирование процессоров аннотаций (с кодогенерацией) для Kotlin
В разработке с использованием Kotlin (или Java) для создания классов по верхнеуровневому описанию часто используется маркировка аннотациями (например, для моделей таблиц баз данных, сетевых запросов или инъекции зависимостей) и подключение процессоров аннотаций, которые также могут генерировать код, доступный из основного проекта. Запуск процессоров аннотаций выполняется внутри gradle (для Java-проектов через annotationProcessor, для Kotlin - kapt) и встраивается как зависимость для целей сборки проекта. И конечно же, как и для любого другого кода, для процессора аннотаций необходимо иметь возможность разрабатывать тесты. В этой статье мы рассмотрим основы использования кодогенерации (с использованием kapt) и разработки тестов для созданных генераторов кода. Во второй части статьи речь пойдет о разработке процессоров на основе Kotlin Symbol Processing (KSP) и созданию тестов для них.
Читать: https://habr.com/ru/companies/otus/articles/726458/?utm_campaign=726458
8 282
Как написать простое консольное приложение с аргументами на Java
Пост про то, как начинающий программист разбирается с консольными утилитами, Java и args4j
У меня появилось задание написать консольное приложение , которое должно разделять и соединять текстовые файлы...
Читать: https://habr.com/ru/articles/726496/?utm_campaign=726496
8 282
Разбираем float на части
Всем привет, многие, наверное, знают про структуру чисел с плавающей запятой, но мне захотелось вдохнуть немного жизни в эти формулы. В этой статье я разберу на части число, наглядно показав что и откуда берется. Код будет на Java.
Читать: https://habr.com/ru/articles/726312/?utm_campaign=726312
8 282
Создаем читабельный e2e тест для микросервисов на Spring Boot с помощью Cucumber 7 и Wiremock
Дорогой читатель, это мой первый туториал и если я что-то упустил или не объяснил, хотя стоило бы, напиши пожалуйста комментарий и я обновлю статью.
TL;DR
Весь код для микросервисов и e2e теста тут
Рекомендую быстро пробежаться по коду перед прочтением статьи т к в самой статье я объясню только неочевидные моменты реализации e2e тестирования.
Читать: https://habr.com/ru/articles/726332/?utm_campaign=726332
8 282
Замеряй и ускоряй: как мы сократили время вызова метода в Java-коде в 16 раз
Привет, Хабр! Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться с методом, создавать правильные условия. И всё равно можно получить результат с погрешностью, потому что любой метод «не бесплатный» и требует ресурсов процессора.
Меня зовут Александр Певненко, я Java-разработчик в СберТехе. Вместе с командой мы развиваем Platform V DataSpace. Это облачный сервис, который упрощает и ускоряет разработку приложений, используя концепцию Backend-as-a-Service (BaaS) для хранения и управления данными. Я расскажу про наш способ замера производительности кода с помощью бенчмарков. Рассматривать метод будем на примере оптимизации кода в Platform V Dataspace, которая помогла сократить время вызова метода в 16 раз.
В статье я буду пользоваться языком Java, Python для построения графиков и набором библиотек JMH — они также адаптированы для Kotlin, Scala и т.д.
Читать: https://habr.com/ru/companies/sberbank/articles/726100/?utm_campaign=726100
8 282
Потоковый обмен в распределённых системах и использование реактивных потоков в нереактивных приложениях: опыт «Магнита»
Привет, Хабр! На связи Андрей Зяблин, Java разработчик компании «Магнит». В статье я расскажу про три решения, которые позволяют реализовать потоковый обмен данными из БД между распределёнными приложениями.
Читать: https://habr.com/ru/companies/magnit/articles/726090/?utm_campaign=726090
8 282
Что Java-разработчикам расскажут на JPoint 2023?
Недавно Java дошла до юбилейной 20-й версии, а у нашей Java-конференции JPoint своя круглая дата: впервые она прошла 10 лет назад. Каких именно докладов о языке-юбиляре ожидать на конференции-юбиляре в апреле?
Как водится, в программе есть разные тематические блоки:
— и об инструментах («Как познавать Spring Boot 3 с помощью TDD»),
— и о производительности (тут научат пользоваться профайлером perf для JVM-задач),
— а также об архитектуре, тестировании, «реактивщине», работе с данными.
А полный список докладов с описаниями — далее в посте.
Читать: https://habr.com/ru/companies/jugru/articles/725848/?utm_campaign=725848
8 282
Выражение Hibernate запросов в виде типо‑безопасных Java-потоков
В этой статье вы узнаете, как расширение JPAstreamer Quarkus упрощает выполнение типо‑безопасных запросов Hibernate без излишней многословности и сложности.
Читать: https://habr.com/ru/articles/721788/?utm_campaign=721788
8 282
Книга «Объекты. Стильное ООП»
Привет, Хаброжители!
Хороший объектно-ориентированный код удобно читать, изменять и исправлять. Универсальные практики проектирования объектов, собранные в этой книге, позволят улучшить ваш стиль кодирования. Эти правила подойдут к любому объектно-ориентированному языку, они делают код максимально понятным и надежным, а также повышают производительность как индивидуальных разработчиков, так и команд.
Книга «Объекты. Стильное ООП» познакомит вас с профессиональными техниками написания ОО-кода. Маттиас Нобак раскрывает правила создания объектов, определения методов, изменения и извлечения состояний и многое другое. Все примеры написаны на простом псевдокоде, который легко перевести в любой язык программирования. Кейс за кейсом вы изучите ключевые сценарии и задачи проектирования объектов, а затем шаг за шагом создадите простое веб-приложение, которое покажет, как должны взаимодействовать объекты разных типов.
Читать: https://habr.com/ru/companies/piter/articles/725338/?utm_campaign=725338
8 282
@Transactional в Spring и исключения
Привет! В этой статье я бы хотел рассказать, как Spring'овая аннотация
@Transactionalведет себя при возникновении исключений. Про это немало написано, в том числе на Хабре. Например, тут или тут. Поэтому, чтобы не повторяться, я не буду подробно расписывать как и почему исключения влияют на откат транзакций, а вместо этого просто покажу несколько примеров.
Читать: https://habr.com/ru/articles/725064/?utm_campaign=7250648 282
Java для начинающих: решаем задачу умножения матриц
Для тех, кто только начинает учиться программировать на языке Java, часто бывает непросто найти задачу по плечу — и чтобы научиться чему-то новому, и чтобы не застрять где-то посередине задачи, разбираясь с подводными камнями.
В этой статье я, Сергей Чеботарев, наставник на курсе «Java-разработчик», покажу пример задачи, которая более-менее подходит к этим требованиям. Мы немного потренируемся в реализации алгоритмов, использующих циклы, а также в использовании консольного ввода-вывода. Нам потребуются математические знания на уровне школьной математики, а для реализации я буду использовать JDK 11.
Читать: https://habr.com/ru/companies/yandex_praktikum/articles/723510/?utm_campaign=723510
8 282
Как запустить Java-приложение с помощью CRaC в контейнере Docker
CRaC (Coordinated Restore at Checkpoint) — это проект OpenJDK, разработанный Azul для решения проблемы «медленного» запуска виртуальной машины Java в микросервисной среде.
Когда JVM запускает код вашего приложения, она выполняет такие действия, как интерпретация, компиляция и оптимизация кода, чтобы ваше приложение работало как можно быстрее при заданной рабочей нагрузке. Это здорово, но может занять некоторое время, и особенно при запуске короткоживущих микросервисов, вы не хотите ждать, пока JVM создаст наиболее оптимизированный код.
В механизме восстановления контрольной точки (checkpoint-restore) нет ничего нового, и большинство из вас уже знают и используют его ежедневно.
Если вы работаете на ноутбуке и закрываете крышку, операционная система обнаруживает это и сохраняет текущее состояние на диск. Как только вы снова открываете крышку, операционная система восстанавливает сохраненное состояние с диска.
CRaC предоставляет тот же механизм, но для JVM и вашего запущенного приложения.
Вы запускаете свое приложение, применяете к нему некоторую рабочую нагрузку (чтобы убедиться, что важные части вашего кода будут затронуты и оптимизированы JVM), а затем создаете контрольную точку. Это приведет к закрытию всех открытых ресурсов, таких как открытые файлы и сокетные соединения, а затем сохранит состояние JVM, включая ваше приложение, на диск.
После этого вы сможете восстанавливать состояние JVM, включая состояние вашего приложения, из этой сохраненной контрольной точки так часто, как вам захочется.
Таким образом, CRaC не только решает проблему времени запуска, но и может решить проблему времени разогрева приложения, поскольку вы можете создавать контрольную точку в любое время.
Читать: https://habr.com/ru/articles/719522/?utm_campaign=719522
8 282
Сказка о типизации
В некотором царстве, в некотором государстве жил был царь. Как-то раз объявил царь всему народу - "Кто решит три моих задачки, тот сам сможет царём стать". И даже контракт метода опубликовал, всё честь по чести.
Это только присказка, сказка будет впереди
Читать: https://habr.com/ru/articles/724700/?utm_campaign=724700
