Java News – Telegram
Java News
4.31K subscribers
247 photos
5 videos
1 file
1.48K links
Все новости связанные с Java!

По всем вопросам: @NadikaKir

Мы на бирже: https://telega.in/c/java_newss
Download Telegram
​​Создание Native Images со Spring Native и GraalVM

В этой статье я хочу исследовать возможности технологии Java Native Image, поделиться опытом взаимодействия с ней и со средствами Spring для генерации нативных образов.

Читать статью
👍5🔥2🤩1
​​Тестирование GraphQL: подходы, инструменты, автоматизация

Несколько месяцев назад на моем пути возник GraphQL.

Это произошло, когда я присоединилась к одному из наших проектов, где был не только привычный REST, но и GraphQL API. Это было моё первое знакомство с ним. Я понятия не имела, что он собой представляет, в чем его особенности, а самое главное для меня, как QA инженера – не знала, как его тестировать.

Ниже я расскажу, что делала я, с какими проблемами сталкивалась, с чего можно начать и что важного и особенного надо знать про GraphQL для успешного тестирования как руками, так и с помощью автотестов. Вполне вероятно, что это поможет и вам разобраться в данном вопросе.

Читать статью
👍5
​​LJV: Чему нас может научить визуализация структур данных в Java

Эта статья является пересказом моего доклада на Java-конференции SnowOne 2021 года. LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе я запускаю LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбираю, что там внутри, как оно менялось от версии к версии, и как это всё работает.

Читать статью
👍4🔥2🤩1
​​Реализация двухфакторной аутентификации с помощью Spring Security

В статье рассматривается использование двухфакторной аутентификации (когда клиент должен предоставить дополнительный токен безопасности помимо учетных данных) с помощью Spring Security. Хоть в Spring и нет встроенной двухфакторной аутентификации, эту функциональность легко добавить.

Читать статью
👍5🔥5
​​«Невозможный» параллельный алгоритм неотрицательной суммы

Рецепт параллельных вычислений Fork/Join или Map/Reduce:
- разбить задачу на куски;
- посчитать куски по-отдельности;
- склеить вместе.

Неотрицательная сумма (a, b) -> max(0, a + b) неассоциативна и результат зависит от порядка склейки. Она сломает Fork/Join и результат будет некорректен. Магией моноида починить на Java, SQL и Haskell за 5 минут, но

Читать статью
👍7
​​Java: делаем Valhalla сами

В Java каждый объект - это заголовок и данные. В случае 64 битной машины заголовок равен 16 байтам. Также Java использует выравнивание объектов в памяти по 8 байт, следовательно размер объекта кратен 8 байтам. Поэтому обёртки примитивных типов такие как Integer, Double занимают по 24 байта, что весьма затратно для примитивных типов.

Читать статью
🔥6👍2🤩1
​​Java News Roundup: State of Project Valhalla by Brian Goetz, GlassFish 7.0-M1 and Project Loom Lab

It was very quiet for the week of December 27th, 2021, but InfoQ found a few news items of interest that include: the "State of Project Valhalla," a three-part blog series written by Brian Goetz; GlassFish 7.0.0-M1; Project Loom Lab, a new project created by Nicolai Parlog; an update of the Jakarta EE Tutorial to Jakarta EE 9.1; Apache Camel 3.11.5; and JDKMon 17.0.21.

Читать статью
👍3🔥2
​​Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры

Данная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников.

Читать статью
👍5
​​Проектируем приложение с Redis в качестве хранилища данных. Что? Зачем?

Всем привет! Многие знают что такое Redis, а если вы не знаете, то официальный сайт может ввести вас в курс дела. Большинство знают Redis как кэш и иногда как очередь сообщений. Но что если немножко сойти с ума и попытаться спроектировать целое приложение, используя в качестве хранилища данных только лишь Redis? Какие задачи можно решить с использованием Redis'а?

В этой статье мы и попытаемся ответить на эти вопросы.

Не переключайтесь.

Читать статью
👍6
​​Дыра в безопасности, похожая на Log4Shell, обнаружена в популярном Java SQL движке базы данных H2

«Это Log4Shell, Джим, но не в том виде, в каком мы его знаем» — так никогда не говорил Commander Spock.

Это краткий обзор ошибки CVE-2021-42392, дыры в системе безопасности, о которой недавно сообщили исследователи из компании по управлению цепочками поставок программного обеспечения Jfrog.

Читать статью
👍4
Java News Roundup: JDK 18, JDK 19, Groovy DSL for Spring Integration, JHipster, Micronaut Foundation

It was another relatively quiet week for the January 3rd, 2022 edition of the Java news roundup featuring build updates to JDK 18 and JDK 19, VMware publishing CVE-2021-22060 as a follow up to CVE-2021-22096, a new Groovy DSL for Spring Integration, Helidon 2.4.1, Hibernate Search versions 6.0.8 and 6.1.0.Beta2, JHipster 7.5.0, JReleaser 0.10.0 and Gradle having joined the Micronaut Foundation.

Читать статью
👍5🔥2
​​Тысячная статья про принципы SOLID

Ещё будучи совсем-совсем начинающим разработчиком, я услышал про принципы SOLID и, конечно же, совершенно их не понял. Их не помогли понять ни лекции Дядюшки Боба, ни книга его же авторства, не несколько десятков (а то и сотен) статей в интернете, которые я тогда прочитал (по какой-то причине мне эти принципы казались чем-то очень важным, прямо-таки фундаментальным). Сейчас я могу сказать, что понимаю их как-то, по-своему, и пользуюсь ими каждый день. В данной короткой статье хочу поделиться своими размышлениями о сути принципов, которые были бы понятны тому мне из прошлого, который пытался загуглить доступное объяснение этих принципов.

Читать статью
👍8
​​Полезные и неизвестные возможности Java

В этой статье вы узнаете о некоторых полезных функциях Java, о которых вы, вероятно, не слышали.

Это мой личный список функций, использованных мной недавно или с которыми я столкнулся при чтении статей о Java.

Читать статью
👍7
​​Циклы Java в сторону - даешь потоки!

Поток данных  —  одна из важнейших возможностей Java 8. Чтобы узнать все ее преимущества, необходимо понять ее суть.

Поток  —  это последовательность данных, позволяющая по-особенному обрабатывать их все целиком или выборочно. Потоки можно создавать или преобразовывать в них уже имеющиеся структуры. Ими можно заменить циклы, поскольку по аналогии с ними они способствуют обработке последовательности данных.

Читать статью
👍10
​​Как в Java устроено выделение регистров в памяти

Когда виртуальная машина Java компилирует ваш исходный код Java в машинный, одна из задач, которые она должна при этом выполнить – решить, где хранить локальные переменные Java и другие подобные временные значения. В вашей машине отсутствует концепция локальных переменных, поэтому на этапе компиляции необходимо определиться, какое место в памяти стека (какой машинный регистр) будет использоваться для хранения каждой переменной. Эта операция называется «выделение регистров». Может показаться, что выделение регистров – сложная абстрактная теоретическая тема, но в этом коротком посте я покажу, как сначала соотнести исходный код Java с теорией, потом понять, как его видит компилятор, а потом – показать результирующий машинный код. В данном случае моя цель – продемонстрировать, что все эти концепции очень легко опробовать на практике с реальным компилятором.

Читать статью
👍4
Java News Roundup: Java Plans for 2022, Spring Framework 6.0-M2, Introducing Eclipse Jifa

This week's Java roundup for January 10th, 2021, features news from JDK 18, JDK 19, Java's plans for 2022 as presented by Nicolai Parlog, point releases for Spring Framework and Spring Data, Quarkus 2.6.2, Micronaut 3.2.5 and 3.2.6, Piranha 22.1.0, JobRunr 4.0.6, introducing Eclipse Jifa, Micrometer Metrics 2.0.0-M1, Micrometer Tracing 1.0.0-M1 and the July - December 2021 Foojay Status Report.

Читать статью
👍4
​​Потратить миллион, чтобы нанять двух джунов: профит и около него

Привет, меня зовут Валерий Антонов, я руковожу направлением Java в Уральском банке реконструкции и развития (УБРиР).

Осенью у нас окончилось обучение в двух школах Java. По итогам работы мы приняли в штат двух учеников школы Java, а несколько сотрудников банка сменили свои должности, став разработчиками на языке Java. В этой статье я расскажу, как мы запускали школу, кого учили, какая была программа и с какими сложностями мы столкнулись. Надеюсь, статья будет полезна тем, кто собирается запускать свое обучение, а также тем, кто стоит на распутье в изучении Java и не знает, с какой стороны подступиться.

Читать статью
👍5
​​Вы используете ненадежный код

В декабре прошлого года Log4Shell сократил ночи многих людей в мире JVM. Хуже того, используя аналогию с землетрясением, после первоначального землетрясения возникло множество афтершоков.

Я сразу установил связь между Log4Shell и Security Manager. Сначала я не хотел об этом писать. Но ко мне поступили просьбы, и я не мог обойти это стороной.

Насколько я помню команда Oracle отказалась от Security Manager в Java 17. Один из аргументов, на котором основывалось это решение, заключается в том, что он изначально был разработан для защиты апплетов.

Читать статью
👍5
Java-библиотеки, которые повысят вашу производительность

Написание шаблонного кода или кода, который на самом деле не нужен, отнимает много времени. У языка Java есть большое сообщество, создавшее множество библиотек, которые помогут вам повысить производительность, избавив от необходимости писать шаблонный код или предоставляя утилиты для решения распространенных проблем. В этой статье мы рассмотрим некоторые из таких библиотек.

Читать статью
👍7🔥4
Telegram-бот на вебхуках — Java+Spring, Redis, клавиатуры и деплой на Heroku — снова для самых маленьких

Это вторая статья в моей серии «для самых маленьких» — предыдущая была посвящена «классическому» Telegram-боту, наследуемому от TelegramLongPollingBot.

Для кого написано:
Если вы ни разу не писали Telegram-ботов на Java с использованием вебхуков и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для создания скелета своего бота, а потом подключить его к своей бизнес-логике.

Я пытаюсь писать как для себя, а не сразу для умных — надеюсь, кому-нибудь это поможет быстрее въехать в тему.

Читать статью
👍5🔥1🤩1
Java News Roundup: JDK 18 in RD2, Spring Boot Updates, GraalVM 22, WildFly 2022 Release Plan

This week's Java roundup for January 17th, 2021, features news from JDK 17, JDK 18, JDK 19, multiple Spring releases, Payara Platform, Open Liberty 22.0.0.1 and 22.0.0.2-beta, Quarkus 2.6.3.Final, WildFly 26.0.1 and 2022 release plan, Micronaut 3.2.7 and 3.3.0-M1, Hibernate ORM 5.6.4.Final and Hibernate Search 6.1.0-CR1, Liberica JDK 17.0.2, GraalVM 22 and JReleaser 0.10.0 and 1.0.0-M1.

Читать статью
👍6