javaswag
4.67K subscribers
278 photos
42 videos
1 file
1.11K links
Еженедельная рассылка вручную отобранных статей по Java и JVM. https://javaswag.github.io

Предложить новость: @volyx
Реклама: @anabilisa
Download Telegram
https://www.agilejava.eu/2019/05/05/jakarta-going-forward/

Jakarta Going Forward
Фонд Эклипса договорился с Ораклом насчет прав на товарный знак Java. Итоги таковы — все спецификации переименовать в Jakarta, все названия пэкаджей javax.* нужно переименовать в jakarta.*.
https://openjdk.java.net/jeps/8222530
JEP 355: Text Blocks (Preview)

Это дальнейшие исследования строковых литералов в джаве. Предыдущий пропозал был отозван - https://openjdk.java.net/jeps/326. Теперь дело за новым. В нем строки будут оборачиваться в конструкцию из трех кавычек, но форматирование внутри кавычек все также сохранится.
https://blog.codefx.org/java/text-blocks/
Definite Guide To Text Blocks In Java 13

В строковых литералах обязательно должен быть символ новой строки после трех кавычек, иначе литерал не скомпилируется. А в конце литерала символ новой строки не обязателен. В статье Николай Парлог рассмотрел все возможные варианты написания строковых литералов.
https://rkennke.wordpress.com/2019/05/15/shenandoah-gc-in-jdk13-part-i-load-reference-barriers/amp/
Shenandoah GC in JDK 13, Part I: Load Reference Barriers

Роман Кенке, лидер проекта Shenandoah GC, рассказывает про усовершенствования в новом сборщике мусора в народе называемом “Шенонда”. Обзор состоит из трех частей: в первой Роман рассказывает про барьеры на чтение и запись примитивов в JDK13, во второй развеивает миф про лишнее «слово» в заголовке объекта, в третьей рассказывает о поддержке двух новых архитектур — x86 32 и Solaris.
https://cl4es.github.io/2019/05/14/String-Concat-Redux.html
String concatenation, redux

Из-за JEP 280 в джаве появилась возможность оптимизировать конкатенацию строк в рантайме в зависимости от окружения. Автор рассказывает как можно «убыстрить» конкатенацию в Java 11,12,13.
http://serce.me/posts/16-05-2019-the-matter-of-time/
The matter of time()

Тест из 6 вопросов по работе с методами System.nanoTime(), System.currentTimeMillis() Затем автор объясняет почему ответы именно такие. Оказывается, что два последовательных вызова currentTimeMillis могут вернуть не только одинаковый результат, но и значение второго вызова будет меньше первого.
https://jakewharton.com/androids-java-8-support/
Android's Java 8 Support

Джек Вортон рассказывает про дексер D8, который умеет компилировать лямбды в байткод . Скомпилированный код в итоге работает быстрее чем подход с библиотекой retrolambda.
http://clojure-goes-fast.com/blog/shenandoah-in-production/
Shenandoah GC in production: experience report

Опыт использования и тюнинга сборщика мусора ”Shenandoah” на реальном приложении. Автор утверждает, что Shenandoah может быть полезен не только приложениям, критичным к задержкам, но и обычным веб сайтам. На примере прокси-сервера автор показывает как уменьшил паузы сборщика мусора с 50-150 миллисекунд до 10-20 миллисекунд.
https://openjdk.java.net/jeps/353
JEP 353: Reimplement the Legacy Socket API

Авторы JEP предлагают добавить новую реализацию Socket API переосмыслив старые классы java.net.Socket, java.net.ServerSocket, которым уже больше 20 лет. Планируется, что в будущем в новой реализации потоки можно будет заменить на файберы из проекта Loom.
https://habr.com/ru/post/454744/
Обзор докладов Java-трека c конференции RigaDevDays

C 30 по 31 мая был на конференции RigaDevDays и написал о Топ-7 докладов с этой конференции. Короткая выжимка всего самого интересного, для тех кто там не был.
https://javaswag.github.io/episode/0

Javaswag Podcast - 0

Выпуск подкаста с Евгением Борисовым. Задал ему самые важные вопросы: почему называет Хибернейт айбирнейтом, почему а слайдах пчела это BeanFactory, откуда знает создателя спринга, как первый раз выступил, как учит детей программированию и много другое.
Как всегда не прощаемся! ☀️☀️☀️
Привет! В выпуске 6 ошибок при написании микробенчмарков, переход микросервиса на WebFlux, подкаст с Олегом Докукой о RSocket.
https://www.opsian.com/blog/aleksey-shipilev-shenandoah-concurrent-gcs/
Opsian talks to Aleksey Shipilëv about Shenandoah and Concurrent GCs
Вторая часть интервью с Алексеем Шипилевым, одним из разработчиков сборщика мусора Шенанда. Шенанда - сборщик нового поколения, который работает полностью параллельно с вашим приложением, делая миллисекундные задержки для сборки мусора.
https://ordina-jworks.github.io/conference/2019/07/10/Spring-IO-2019.html
Spring IO 2019
Видео с конференции Spring IO в Барселоне. Доклады про самые хайповые темы в спринге - распил монолита, стримы, серверлесс, деплой в кластер кубернетиса, реактивность.
https://medium.com/@educostadev/learn-how-to-package-your-java-application-into-a-docker-image-f83a76fab7a5
Learn how to package your java application into a docker image
Автор рассказывает как с помощью многоэтапного докер файла собрать приложение мавеном внутри образа докера, а затем запустить его.
https://g00glen00b.be/reactive-relational-databases-r2dbc-spring/
Reactive relational databases with R2DBC and Spring
Автор показывает пример полностью реактивного приложения используя спринг и реактивный JDBC клиент к постгресу.
What's Wrong With My Benchmark Results? Studying Bad Practices in JMH Benchmarks
https://www.researchgate.net/publication/333825812_What's_Wrong_With_My_Benchmark_Results_Studying_Bad_Practices_in_JMH_Benchmarks
Академическое исследование микробенчмарков, написанных с помощью библиотеки JMH. 35 из 123 бенчмарков содержали какой-либо баг в замерах. Авторы представили 6 ошибок, которые совершают чаще всего при написании бенчмарка.
https://allegro.tech/2019/07/migrating-microservice-to-spring-webflux.html
Migrating a microservice to Spring WebFlux
Инженеры из компании Allegro после последнего падения микросервиса мигрировали один из микросервисов на WebFlux. В статье они делятся опытом как пройти такой же путь и рассказывают как пошагово сделать код реактивным: сначала — меняем небольшие куски кода на Flux/Mono и блокируем вызов метода функцией block() в конце, затем меняем критический асинхронный код с CompletableFuture и входные хттп-точки на Mono/Flux.
https://javaswag.github.io/episode/1

Javaswag # 1
Записал интервью с Олегом Докукой. Расспросил
- Сколько конференций посетил в этом году?
- Как выучил английский за полтора месяца до доклада
- Как начать контрибьютить в Спринг?
- Куда пропали евангелисты Grpc? QUIC3 замена Grpc?
- История протокола RSocket и Netflix
До скорого! 🖖