Java
1.64K subscribers
223 photos
5 videos
3 files
901 links
Программирование на Java.

По всем вопросам: @un_ixtime
Download Telegram
[Перевод] Все что вам нужно знать о таймаутах

Какустановить оптимальное значение таймаутов вмикросервисной архитектуре, чтобы достичь максимальной производительности и отказоустойчивости.

Под катом вы узнаете как установить оптимальные значение connection и request timeout, стоит ли повторять запрос при ошибке или лучше избегать этого.

В конце статьи есть небольшая шпаргалка и куча полезных ссылок. Приятного чтения.

https://habr.com/ru/articles/755750/
👍3
Чтобы стать выдающимся #Java -разработчиком, мы должны выйти за рамки #Java . Нам нужно знать, как создавать масштабируемые системы. В этой новой статье вы изучите основы #cache

https://javachallengers.com/cache-systems-design/
This media is not supported in your browser
VIEW IN TELEGRAM
🐛Используйте отладчик #IntelliJIDEA для отладки потоков и визуализации того, что происходит в операциях Java Stream, с помощью «Trace Current Stream Chain» в окне инструмента «Отладка».
👍5
До выпуска #Java21 осталось всего несколько недель .
Чего мы можем ожидать. https://blogs.oracle.com/javamagazine/post/java-21-sneak-peek
Представляем freeCodeCamp Press — бесплатные книги для разработчиков

Сообщество freeCodeCamp за годы опубликовало более 10 000 руководств. Но в последнее время мы сосредоточились на создании еще более объемных ресурсов для изучения математики, программирования и информатики.

Вот почему мы создали freeCodeCamp Press — подразделение freeCodeCamp, где мы публикуем полноформатные книги и справочники — все они доступны каждому бесплатно. https://www.freecodecamp.org/news/freecodecamp-press-books-handbooks/
👍1
Насколько быстро работает Java 21?

Поскольку выпуск Java 21 уже не за горами, у вас может возникнуть вопрос, чем она отличается от Java 17 и стоит ли вам обновляться. https://timefold.ai/blog/2023/java-21-performance/
Java Digest #4.

Всем привет! 👋 👋 👋 Мы Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и решили делиться этим не только с коллегами, но и со всем сообществом.

В этот раз эпиграф к выпуску нам придумал ChatGPT:

In the whimsical world of Java, where code dances with curiosity and logic wears a hat of wonder, our Java Digest takes you on a delightful journey through the rabbit hole of programming brilliance.

Stay tuned! 🙂

Читать четвертый выпуск https://habr.com/ru/companies/tinkoff/articles/759432
Перестаём бояться генерировать байт-код

Многие, возможно, думают, что работа с байт-кодом Java (будь то чтение или, тем более, генерация) — это какая-то особенная магия, доступная только продвинутым разработчикам с особенно крутым опытом. На самом деле, я считаю такую точку зрения ошибочной. JVM устроена гораздо проще, чем CPU; она оперирует такими высокоуровневыми понятиями как классы, интерфейсы, методы, а не просто лопатит байты в памяти. В отличие от CPU, который легко уронить криво сгенерированным машинным кодом, JVM заботливо отверифицирует любой байт-код и в общем не даст выстрелить в ногу.

Но с чего начать погружение в байт-кодную магию? В сети есть некоторое количество туториалов по этому вопросу. Как мне кажется, они либо показывают слишком простые случаи, от которых непонятно, как перейти к чему-то более интересному, либо очень основательные и требуют вникать в теорию, собирать целиком картину в голове по кусочкам. Я хотел бы попробовать внести свой вклад в эту тему — надеюсь, у меня получится показать, как можно побороть первый страх и написать что-то похожее на реалистичный сценарий без особого вникания в теорию на первом этапе. https://habr.com/ru/articles/759990/
В этой статье мы углубимся в часто возникающий на собеседовании вопрос: как эффективно управлять родительско-дочерними отношениями в приложении Spring Boot. Этот вопрос имеет большое значение на собеседованиях с Java-разработчиками, поскольку затрагивает фундаментальные концепции. Чтобы всесторонне понять эту тему, важно получить представление о том, как Spring Data JPA работает «под капотом».

https://rathod-ajay.medium.com/managing-parent-child-relationships-with-spring-data-jpa-a-comprehensive-guide-327a9c3e3c6f
Изучите методы динамического программирования на Java

Динамическое программирование — это мощный метод, ставший краеугольным камнем в мире алгоритмов и информатики. Это метод, который разбивает проблемы на более мелкие, более управляемые подзадачи, решая каждую только один раз и сохраняя решения на случай, если они потребуются снова. Этот подход особенно полезен для задач оптимизации, когда вы ищете лучшее решение среди множества возможных решений. https://www.freecodecamp.org/news/learn-dynamic-programming-in-java/
Делаем свою простейшую систему сборки для Java

Довелось мне обучать одного знакомого, желающего войти в ИТ (привет, Саша!). Человек он упорный, прошел разные курсы, стажировки, упорно продолжает идти вперед и уже вполне тянет на уровень джуна и решает прикладные задачи. Но иногда внезапно задает такие вопросы, из которых я понимаю, что у него огромные дыры в базовых знаниях и представлениях. На курсах этому, видимо, не учат.

Один из последних вопросов был про устройство сборки, непонимание того как исходный код собирается в исполняемый и запускается. Начинающим обычно говорят в духе "вот создаешь Gradle-проект, в IDE жмешь кнопочку запуска и все работает". Но как только возникает необходимость что-то в этом простом процессе усложнить, или понять - начинаются проблемы.

Gradle/Maven при этом представляются таким черным ящиком, в котором есть кнопка сборки и запуска, а внутри - магия, превращающая исходный код в запущенную программу.

В этой статье я пробегусь по основам того, как в Java работает компиляция, а также покажу, как по шагам прийти от компиляции отдельных файлов вручную к идее необходимости системы сборки, и как написать свою простенькую систему. Ведь лучший способ понять, как что-то устроено внутри - сделать это самому. https://habr.com/ru/articles/752014/
Готовы ли вы ко всем новым технологиям #Java21 ??

Ознакомьтесь со многими изменениями, маленькими и большими, охватывающими окончательные версии JEP, предварительный просмотр и что-то совершенно новое для платформы. https://blogs.oracle.com/javamagazine/post/java-inside-21-features
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.

Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода. https://habr.com/ru/articles/762084/
OOM: direct memory при работе с сетью TCP/IP через NIO в Java.

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Работаю в компании без малого 20 лет, из них 18 пишу на Java.

Сегодня я расскажу об опыте увеличения производительности сетевого стэка и проблемах, с которыми можно столкнуться при использовании NIO в Java.

Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory".

Читать далее https://habr.com/ru/companies/bercut/articles/762254
Minum — это минималистичный экспериментальный веб-фреймворк, демонстрирующий меньше, да лучше.

https://github.com/byronka/minum
Управление памятью в Java: введение

Понимание управления памятью в Java и, в частности, роли распределения объектов имеет важное значение при оптимизации производительности системы. https://foojay.io/today/java-memory-management/
👍3
Аннотации и рефлексия в Java.

Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных приложений. Аннотации предоставляют способ добавить метаданные к классам, методам и полям, что позволяет компилятору и другим инструментам анализировать код более глубоко. Рефлексия, с другой стороны, позволяет программам анализировать и модифицировать свой собственный состав и поведение во время выполнения. Читать дальше →https://habr.com/ru/companies/otus/articles/764244