Получи случайную криптовалюту за регистрацию!

javaswag

Логотип телеграм канала @javaswag — javaswag J
Логотип телеграм канала @javaswag — javaswag
Адрес канала: @javaswag
Категории: Технологии
Язык: Русский
Количество подписчиков: 5.23K
Описание канала:

Еженедельная рассылка вручную отобранных статей по Java и JVM. https://javaswag.github.io
Предложить новость: @volyx
Реклама: @anabilisa

Рейтинги и Отзывы

3.67

3 отзыва

Оценить канал javaswag и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

1

1 звезд

0


Последние сообщения 6

2022-04-18 20:02:07
Fundamentals of Software Optimization Part I — Benchmarking
https://sigpwned.com/2022/04/16/fundamentals-of-software-optimization-part-i-benchmarking/
В статье автор рассказывает основы написания бенчмарка используя библиотеку JMH. Тестирует он программу по нахождению количества эмоджи в тексте. По его замерам выходит, что код обрабатывает 20Мб текста в секунду, аллоцируя 50 мегабайт в секунду. Замерив бейзлайн(baseline) кода - изначальные метрики бенчмарка, в следующей статье автор будет оптимизировать программу. Будем с нетерпением ожидать сколько ему удасться сооптимизировать.
1.0K views17:02
Открыть/Комментировать
2022-04-18 20:02:07
Synchronizing on Value-Based Classes
https://www.javaspecialists.eu/archive/Issue299-Synchronizing-on-Value-Based-Classes.html
В 299 выпуске Хенц Кабутс рассказывает почему нельзя синхронизировать потоки на объектах, помеченных аннотацией @ValueBased. Такие объекты "не имеют идентичности", они взаимозаменяемы. В список таких объектов входят Boolean, Byte, Character, Double, Float, Integer, Long, Short, Duration, Instant, LocalDate, LocalDateTime, LocalTime, MonthDay, OffsetDateTime, OffsetTime, Period, Year, YearMonth, ZonedDateTime, ZoneId, ZoneOffset итд.
В Джаве 17 появился ключ запуска - -XX:DiagnoseSyncOnValueBasedClasses=2. Если запустить ваше приложение с этим ключом, то оно встретив блок синхронизации на @ValueBased объекте будет крашиться. Удобно да? Ну по крайней мере, чтобы запускать при тестировании.
996 views17:02
Открыть/Комментировать
2022-04-18 20:02:07 Welcome to JAR Hell Part 2: Application Deployment Strategies
https://worace.works/2021/04/13/jar-hell-part-2-jvm-deployment-strategies/
Существует аж 6 способов собрать запускаемое приложение на Джаве. Самый популярный — это uber-jar. Также есть: war файлы, сборка через докер контейнер, через docker jib контейнер, с помощью ГраальВМ. В следующей части автор обещает рассказать про плюсы и минусы каждого. Для своих проектов, я пользуюсь только убер-джаром, а вы?
1.0K views17:02
Открыть/Комментировать
2022-04-18 20:02:07
1,000,000 Concurrent Connections
https://josephmate.github.io/2022-04-14-max-connections/
Есть предубеждение, что приложение не может обработать подключений больше, чем количество портов на сервере. На сервере, как известно 65,536 портов, и вроде все. Хочешь больше подключений – подключай больше серверов и балансируй нагрузку.
Разработчики Ватсапа утверждают, что смогли достичь 2 миллиона вебсокет подключений, но скупы на подробности. Автор статьи утверждает, что теоретический лимит подключений – 2^48 (квадриллион, 10^15) А на практике, на МакОс с 16Гб автору удалось создать 80 тысяч. подключений, а на Линуксе с 8Гб - 840 тысяч. В статье подробности, какие параметры были изменены на ОС чтобы достичь такого количества.
1.1K views17:02
Открыть/Комментировать
2022-04-18 20:02:07 Привет! В выпуске разбираемся с аннотацией @ValueBased, читаем статью про основы написания бенчмарков и используем библиотеку ArchUnit для линтинга классов.
1.1K views17:02
Открыть/Комментировать
2022-03-28 19:30:07 До следующего выпуска
2.3K views16:30
Открыть/Комментировать
2022-03-28 19:30:07
Спонсор выпуска - курс «Подготовка к сертификации Oracle Java Programmer (OCAJP)» от OTUS

Собираешься получать сертификат Oracle Java Programmer?

Начни подготовку с вебинара «Переопределение, скрытие, передекларация» в OTUS. Урок проведет Дмитрий Коган, эксперт Java, 6 апреля в 20:00.

Мы рассмотрим четыре правила: переопределение и скрытие методов в Java, передекларацию и скрытие переменных, а после познакомимся с пятым.

Demo-занятие пройдет в рамках онлайн-курса «Подготовка к сертификации Oracle Java Programmer (OCAJP)», где вы натренируетесь решать задачи и глубоко погрузитесь в возможности Java.

Регистрация на вебинар https://otus.pw/iQXl/
2.2K views16:30
Открыть/Комментировать
2022-03-28 19:30:06
How to leverage functional programming in Kotlin to write better, cleaner code
https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/
Инженеры DoorDash переписали бэкенд на Котлин с Питона. В статье рассказывают, как функциональный подход на Котлине позволяет им писать код без ошибок. Из функциональщины они используют “чистые функции”, неизменяемые объекты, композицию функций. В статье есть пример как выглядит код, выполняющий одну и ту же задачу, написанный в императивном стиле и в функциональном.
1.7K views16:30
Открыть/Комментировать
2022-03-28 19:30:02
Counting over Range Predicates
https://richardstartin.github.io/posts/range-counts
Ричард Стартин бенчамаркает предикаты на стримах. Он утверждает, что задача подсчета объектов, удовлетворяющих какому-то условию гораздо проще, чем выборка объектов по этому же условию. Оптимальное по производительности решение данной задачи это использовать библиотеку RoaringBitmap.
1.4K views16:30
Открыть/Комментировать
2022-03-28 19:30:02 Oracle's compliance cops now include Java in license audits
https://www.theregister.com/2022/03/22/oracle_starts_to_include_java/
Копы из Оракла придут и проверят вашу джаву — примерно это понял я из этой статьи. Оракловская Джава раздается по подписке, будьте аккуратны. Даже если вы скачали Джаву 8, но используете обновления оракла, то вы можете попасть под полиси и к вам тоже придут “копы”. Если сомневаетесь в лицензии лучше перейти на другие сборки. Список сборок можно посмотреть например вот здесь - https://jdk.dev/download/
1.3K views16:30
Открыть/Комментировать