Forwarded from Java Guru 🤓
Что выведет данный код?
Anonymous Quiz
10%
Sum of keys: 5, Concatenated languages: GoKotlinjavaScript
22%
Sum of keys: 30, Concatenated languages: KotlinjavaScript
29%
Sum of keys: 15, Concatenated languages: GoKotlinjavaScript
33%
Sum of keys: 15, Concatenated languages: PythonGoKotlinjavaScript
7%
Sum of keys: 10, Concatenated languages: GoKotlin
👍8🔥3😁1
🗓 05 декабря в 20:00 МСК
Интеграция логирования с системами обмена сообщениями, такими как Apache Kafka, становится все более востребованной в современных Java-приложениях. Однако найти готовый функционал для этой задачи не всегда просто, поэтому часто возникает необходимость разработки собственного Kafka-appender для логгера.
На вебинаре разберем:
Вебинар пройдет в рамках курса «Java Developer. Professional», все посетители получат welcome-скидку на обучение.
🔗 Ссылка на регистрацию: https://vk.cc/cFpnap
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥2
Как работает 𝐠𝐑𝐏𝐂
gRPC (Google Remote Procedure Call) — это современный фреймворк с открытым исходным кодом, разработанный компанией Google для эффективной и масштабируемой коммуникации между микросервисами. Он основан на RPC (удалённый вызов процедур) и используется для построения распределённых систем и микросервисных архитектур.
Выше показана диаграмма, иллюстрирующая общий поток данных для 𝐠𝐑𝐏𝐂.
Шаг 1: Клиент отправляет REST-запрос, обычно в формате JSON.
Шаги 2 - 4: Сервис заказа (клиент gRPC) получает REST-запрос, преобразует его и делает RPC-вызов к сервису оплаты. gPRC кодирует клиентский stub в бинарный формат и отправляет на транспортный уровень.
Шаг 5: gRPC передаёт пакеты по сети через HTTP/2. Благодаря бинарному кодированию и сетевым оптимизациям gRPC работает в 5 раз быстрее, чем JSON.
Шаги 6 - 8: Сервис оплаты (сервер gRPC) получает пакеты, декодирует их и вызывает серверное приложение.
Шаги 9 - 11: Результат возвращается с серверного приложения, кодируется и передаётся на транспортный уровень.
Шаги 12 - 14: Сервис заказа получает пакеты, декодирует их и отправляет результат клиентскому приложению.
@javalib #java
gRPC (Google Remote Procedure Call) — это современный фреймворк с открытым исходным кодом, разработанный компанией Google для эффективной и масштабируемой коммуникации между микросервисами. Он основан на RPC (удалённый вызов процедур) и используется для построения распределённых систем и микросервисных архитектур.
Выше показана диаграмма, иллюстрирующая общий поток данных для 𝐠𝐑𝐏𝐂.
Шаг 1: Клиент отправляет REST-запрос, обычно в формате JSON.
Шаги 2 - 4: Сервис заказа (клиент gRPC) получает REST-запрос, преобразует его и делает RPC-вызов к сервису оплаты. gPRC кодирует клиентский stub в бинарный формат и отправляет на транспортный уровень.
Шаг 5: gRPC передаёт пакеты по сети через HTTP/2. Благодаря бинарному кодированию и сетевым оптимизациям gRPC работает в 5 раз быстрее, чем JSON.
Шаги 6 - 8: Сервис оплаты (сервер gRPC) получает пакеты, декодирует их и вызывает серверное приложение.
Шаги 9 - 11: Результат возвращается с серверного приложения, кодируется и передаётся на транспортный уровень.
Шаги 12 - 14: Сервис заказа получает пакеты, декодирует их и отправляет результат клиентскому приложению.
@javalib #java
👍22🔥5❤4
System.arraycopy
System.arraycopy используется для копирования элементов из одного массива в другой. Этот метод предоставляет эффективный способ копирования данных между массивами. Синтаксис System.arraycopy:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Параметры метода включают:
src: Исходный массив, из которого вы хотите скопировать элементы.
srcPos: Начальная позиция в исходном массиве, с которой начнется копирование.
dest: Целевой массив, в который вы хотите скопировать элементы.
destPos: Начальная позиция в целевом массиве, куда будут скопированы элементы.
length: Количество элементов, которое вы хотите скопировать.
@javalib #java
System.arraycopy используется для копирования элементов из одного массива в другой. Этот метод предоставляет эффективный способ копирования данных между массивами. Синтаксис System.arraycopy:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Параметры метода включают:
src: Исходный массив, из которого вы хотите скопировать элементы.
srcPos: Начальная позиция в исходном массиве, с которой начнется копирование.
dest: Целевой массив, в который вы хотите скопировать элементы.
destPos: Начальная позиция в целевом массиве, куда будут скопированы элементы.
length: Количество элементов, которое вы хотите скопировать.
@javalib #java
❤9👍8🔥5
Обучение на курсе «Разработчик на Spring Framework» — ваш шанс прокачаться и выйти на более серьёзные проекты!
Станьте профессионалом, который уверенно работает с микросервисной архитектурой, быстро доносит идеи до production-grade и владеет Spring на уровне, который ценят в топовых компаниях. Диплом OTUS откроет вам двери к новым возможностям и амбициозным проектам.
🎁 В "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2
Метод insert()
Метод insert() используется для вставки элемента в список в заданную позицию. Он принадлежит интерфейсу List и его реализациям, таким как ArrayList.
Этот метод вставляет указанный элемент element по заданному индексу index и сдвигает все последующие элементы вправо.
*Индексы начинаются с 0.
*Если индекс меньше 0 или больше размера списка, будет выброшено исключение.
@javalib #java
Метод insert() используется для вставки элемента в список в заданную позицию. Он принадлежит интерфейсу List и его реализациям, таким как ArrayList.
Этот метод вставляет указанный элемент element по заданному индексу index и сдвигает все последующие элементы вправо.
*Индексы начинаются с 0.
*Если индекс меньше 0 или больше размера списка, будет выброшено исключение.
@javalib #java
👍23🔥7❤5🎉1
Media is too big
VIEW IN TELEGRAM
Разбор исключений в Java (Checked&Unchecked): руководство для начинающих разработчиков
Погружаемся в мир исключений в Java! 🚀 В этом видео вы узнаете, что такое проверяемые (checked) и непроверяемые (unchecked) исключения, чем они отличаются, и как правильно их использовать в коде. Разберёмся с базовым классом Exception, научимся создавать свои исключения и обрабатывать их с помощью @ExceptionHandler.
Этот ролик идеально подходит для начинающих разработчиков, а также для тех, кто хочет систематизировать знания по обработке ошибок в Java.
В видео:
✔️ Что такое исключения и зачем они нужны
✔️ Checked vs Unchecked: основное различие
✔️ Класс Exception и его структура
✔️ Как создать своё исключение
✔️ Реальная обработка ошибок в Spring Boot с @ExceptionHandler
✔️ Полезные советы по работе с исключениями
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
Погружаемся в мир исключений в Java! 🚀 В этом видео вы узнаете, что такое проверяемые (checked) и непроверяемые (unchecked) исключения, чем они отличаются, и как правильно их использовать в коде. Разберёмся с базовым классом Exception, научимся создавать свои исключения и обрабатывать их с помощью @ExceptionHandler.
Этот ролик идеально подходит для начинающих разработчиков, а также для тех, кто хочет систематизировать знания по обработке ошибок в Java.
В видео:
✔️ Что такое исключения и зачем они нужны
✔️ Checked vs Unchecked: основное различие
✔️ Класс Exception и его структура
✔️ Как создать своё исключение
✔️ Реальная обработка ошибок в Spring Boot с @ExceptionHandler
✔️ Полезные советы по работе с исключениями
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥4
Spring Security в действии (2025) PDF
Spring Security значительно упрощает защиту корпоративных приложений, разработанных на Java. Этот мощный фреймворк идеально интегрируется с приложениями Spring, обеспечивая защиту с первых шагов проекта и предоставляя готовые к использованию функции, которые помогут вам реализовать надежную авторизацию и аутентификацию, а также защитить от кражи данных и вторжений. Как и все остальное в экосистеме Spring, этот фреймворк бесплатен, имеет открытый исходный код и поддерживается замечательной командой VMWare.
Понятные объяснения и наглядные примеры научат вас создавать собственные серверы авторизации, настраивать защищенные конечные точки и предотвращать атаки с использованием межсайтового скриптинга и подделки запросов.
Издание адресовано программистам Java и Spring.
Spring Security значительно упрощает защиту корпоративных приложений, разработанных на Java. Этот мощный фреймворк идеально интегрируется с приложениями Spring, обеспечивая защиту с первых шагов проекта и предоставляя готовые к использованию функции, которые помогут вам реализовать надежную авторизацию и аутентификацию, а также защитить от кражи данных и вторжений. Как и все остальное в экосистеме Spring, этот фреймворк бесплатен, имеет открытый исходный код и поддерживается замечательной командой VMWare.
Понятные объяснения и наглядные примеры научат вас создавать собственные серверы авторизации, настраивать защищенные конечные точки и предотвращать атаки с использованием межсайтового скриптинга и подделки запросов.
Издание адресовано программистам Java и Spring.
👍24🔥12❤2
Начните карьеру Java-разработчика с прочной базой!
Java — один из ключевых языков программирования, который используют в банковском деле, корпоративных приложениях и IT-гигантах. Курс поможет вам освоить современные инструменты, такие как Spring, Docker, Hibernate и PostgreSQL.
Обучение на примерах реальных задач, опытные наставники и живая практика с кодом. С дипломом от OTUS вы станете заметным кандидатом для работодателей!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥2
Media is too big
VIEW IN TELEGRAM
Создаём Telegram Бота с Нуля на Java и Spring Boot | Часть 2: Вырезка из процесса разработки
🖖Приветствую! Мы с вами вместе напишем реальный проект Telegram бота. В этой части я даю вам вырезку того, как проходит процесс.
Первая часть
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
🖖Приветствую! Мы с вами вместе напишем реальный проект Telegram бота. В этой части я даю вам вырезку того, как проходит процесс.
Первая часть
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4❤3😁2🎉1
Интерфейс UnaryOperator
Интерфейс UnaryOperator предназначен для представления функций, которые принимают один аргумент и возвращают результат того же типа, что и аргумент.
Он является специализированным функциональным интерфейсом, входящим в пакет java.util.function.
UnaryOperator часто используется в stream API для применения функций к элементам потока.
В примере UnaryOperator используется для преобразования строк в верхний регистр с помощью метода map().
@javalib #java
Интерфейс UnaryOperator предназначен для представления функций, которые принимают один аргумент и возвращают результат того же типа, что и аргумент.
Он является специализированным функциональным интерфейсом, входящим в пакет java.util.function.
UnaryOperator часто используется в stream API для применения функций к элементам потока.
В примере UnaryOperator используется для преобразования строк в верхний регистр с помощью метода map().
@javalib #java
👍13❤6🔥4
🗓 На открытом вебинаре 10 декабря в 20:00 мск мы расскажем, как внедрить Observability в Java-приложения, отслеживать состояние системы и решать проблемы до их появления!
Получите навыки, которые помогут вам создавать надежные приложения, повысить стабильность и оперативно выявлять ошибки. Применяйте эти знания и станьте разработчиком нового уровня.
Спикер Сергей Петрелевич — опытный разработчик на Java и Kotlin.
🔗 Регистрируйтесь на вебинар: https://vk.cc/cFHqaX
Успейте получить скидку на участие в курсе «Java Developer. Professional».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2
Forwarded from Java Guru 🤓
Что выведет данный фрагмент кода?
Anonymous Quiz
14%
true true
55%
false true
16%
true false
14%
false false
👍9🔥3😁1🎅1
Согласованность в распределённой сети — вызов, который мы готовы принять!
На открытом уроке «Распределённые транзакции» разберём, как добиться согласованности данных в микросервисной и распределённой архитектуре. Изучим шаблон Saga, методы обработки ошибок и практики отката данных.
Представьте систему, которая работает без сбоев, несмотря на распределённость данных. Архитектура, которая поддерживает масштабируемость и надёжность, даже при высоких нагрузках.
🔥 Спикер Олег Мифле — бэкенд-разработчик в одной из крупнейших отечественных соцсетей с 15-летним опытом в IT.
🔴 Присоединяйтесь к вебинару 16 декабря в 20:00 мск! Урок пройдёт перед стартом курса «Highload Architect». Участники вебинара получат скидку на обучение: https://vk.cc/cFHQbY
На открытом уроке «Распределённые транзакции» разберём, как добиться согласованности данных в микросервисной и распределённой архитектуре. Изучим шаблон Saga
Представьте систему, которая работает без сбоев, несмотря на распределённость данных. Архитектура, которая поддерживает масштабируемость и надёжность, даже при высоких нагрузках.
🔥 Спикер Олег Мифле — бэкенд-разработчик в одной из крупнейших отечественных соцсетей с 15-летним опытом в IT.
🔴 Присоединяйтесь к вебинару 16 декабря в 20:00 мск! Урок пройдёт перед стартом курса «Highload Architect». Участники вебинара получат скидку на обучение: https://vk.cc/cFHQbY
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍7❤2🔥2
Класс StringJoiner
Класс StringJoiner предназначен для построения строки путем соединения элементов из коллекции.
Он позволяет указать разделитель, префикс и суффикс результирующей строки.
StringJoiner часто используется при необходимости преобразовать коллекцию объектов в строку.
В примере StringJoiner используется как раз для объединения имен в строку с разделителем и добавлением префикса/суффикса.
@javalib #java
Класс StringJoiner предназначен для построения строки путем соединения элементов из коллекции.
Он позволяет указать разделитель, префикс и суффикс результирующей строки.
StringJoiner часто используется при необходимости преобразовать коллекцию объектов в строку.
В примере StringJoiner используется как раз для объединения имен в строку с разделителем и добавлением префикса/суффикса.
@javalib #java
👍14🔥7❤5☃1
🤔Проектирование распределённых систем и управление масштабируемостью
Приглашаем на открытый урок, где вы изучите основы проектирования распределённых систем, включая методы обеспечения масштабируемости, отказоустойчивости и работы с высокими нагрузками. Мы обсудим, как решать проблемы, связанные с согласованностью данных и сетевой латентностью, и рассмотрим подходы к выбору компромиссов между доступностью и производительностью.
Результат: вы узнаете, как проектировать распределённые системы, способные эффективно обрабатывать большие объёмы данных. Научитесь применять принципы масштабируемости и управлять компромиссами при проектировании, что поможет разрабатывать устойчивые и высокопроизводительные решения.
👉 Регистрация и подробности о курсе System Design
https://otus.pw/hmgW/?erid=LjN8KJnfd
#реклама
О рекламодателе
Приглашаем на открытый урок, где вы изучите основы проектирования распределённых систем, включая методы обеспечения масштабируемости, отказоустойчивости и работы с высокими нагрузками. Мы обсудим, как решать проблемы, связанные с согласованностью данных и сетевой латентностью, и рассмотрим подходы к выбору компромиссов между доступностью и производительностью.
Результат: вы узнаете, как проектировать распределённые системы, способные эффективно обрабатывать большие объёмы данных. Научитесь применять принципы масштабируемости и управлять компромиссами при проектировании, что поможет разрабатывать устойчивые и высокопроизводительные решения.
👉 Регистрация и подробности о курсе System Design
https://otus.pw/hmgW/?erid=LjN8KJnfd
#реклама
О рекламодателе
👍6❤3🔥3😁1
Media is too big
VIEW IN TELEGRAM
Это произведение — настоящий шедевр для разработчиков, которые работают с открытым исходным кодом!
Музыканты создали музыкальное произведение, используя программный код! И это сделала комедийная метал-группа Nanowar Of Steel. В новой песне HelloWorld.java все слова написаны на языке Java.
В тексте песни присутствуют циклы, условные операторы, обработка исключений и другие элементы, которые обычно используются в программировании. Это настоящий программный рок! Смотрите сами!
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
Музыканты создали музыкальное произведение, используя программный код! И это сделала комедийная метал-группа Nanowar Of Steel. В новой песне HelloWorld.java все слова написаны на языке Java.
В тексте песни присутствуют циклы, условные операторы, обработка исключений и другие элементы, которые обычно используются в программировании. Это настоящий программный рок! Смотрите сами!
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥11❤3☃1