Определение и отличие IP адресов LAN, PPP в Java. Использование DatagramSocket для нестандартных ситуаций
В некоторых случаях, например, при работе с Linux-системами, InetAddress.getLocalHost() может давать неожиданный результат. В таких ситуациях может быть полезно использовать другой способ — через DatagramSocket, отправляя запрос в сеть:
Сервер не получает эти данные, однако этот метод поможет определить предпочтительный локальный IP-адрес.
Мы в MAX
👉@BookJava
В некоторых случаях, например, при работе с Linux-системами, InetAddress.getLocalHost() может давать неожиданный результат. В таких ситуациях может быть полезно использовать другой способ — через DatagramSocket, отправляя запрос в сеть:
import java.net.*;
public class GetPreferredIP {
public static void main(String[] args) throws SocketException {
try (final DatagramSocket socket = new DatagramSocket()) {
socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
System.out.println(socket.getLocalAddress().getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
Сервер не получает эти данные, однако этот метод поможет определить предпочтительный локальный IP-адрес.
Мы в MAX
👉@BookJava
1👍2
Хотите собрать свой мини-Google? 🚀
🗓 22 октября, 20:00 приглашаем на открытый урок OTUS «Мини-поисковик своими руками». На этом вебинаре вы создадите поисковик с нуля — без готовых библиотек и магии. Только алгоритмы и код.
Разберём, как:
• объединить КМП и префиксное дерево;
• реализовать автодополнение и подсчёт вхождений;
• оптимизировать поиск под большие тексты;
• превратить всё это в маленький, но работающий офлайн-поисковик.
После вебинара вы сможете самостоятельно:
— строить индекс слов и быстро искать по нему;
— собирать статистику запросов;
— понять, как внутри устроены поисковики.
Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.
Присоединяйтесь 22 октября в 20:00:
https://vk.cc/cQoBkb
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🗓 22 октября, 20:00 приглашаем на открытый урок OTUS «Мини-поисковик своими руками». На этом вебинаре вы создадите поисковик с нуля — без готовых библиотек и магии. Только алгоритмы и код.
Разберём, как:
• объединить КМП и префиксное дерево;
• реализовать автодополнение и подсчёт вхождений;
• оптимизировать поиск под большие тексты;
• превратить всё это в маленький, но работающий офлайн-поисковик.
После вебинара вы сможете самостоятельно:
— строить индекс слов и быстро искать по нему;
— собирать статистику запросов;
— понять, как внутри устроены поисковики.
Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.
Присоединяйтесь 22 октября в 20:00:
https://vk.cc/cQoBkb
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Java для ИИ
Многие существующие и будущие возможности Java способны удовлетворить потребности в области искусственного интеллекта. Среди уже доступных функций — API внешних функций и памяти (Foreign Function and Memory API), а также Vector API. Среди будущих — те, что предлагаются в рамках проектов Valhalla и Babylon. В этой презентации будут рассмотрены эти возможности и то, как они могут использоваться Java-библиотеками и приложениями для создания конкурентоспособных ИИ-решений.
https://openjdk.org/projects/babylon/
https://github.com/openjdk/babylon
https://github.com/openjdk/babylon/tree/code-reflection/hat
https://inside.java/tag/babylon
источник
Мы в MAX
👉@BookJava
Многие существующие и будущие возможности Java способны удовлетворить потребности в области искусственного интеллекта. Среди уже доступных функций — API внешних функций и памяти (Foreign Function and Memory API), а также Vector API. Среди будущих — те, что предлагаются в рамках проектов Valhalla и Babylon. В этой презентации будут рассмотрены эти возможности и то, как они могут использоваться Java-библиотеками и приложениями для создания конкурентоспособных ИИ-решений.
https://openjdk.org/projects/babylon/
https://github.com/openjdk/babylon
https://github.com/openjdk/babylon/tree/code-reflection/hat
https://inside.java/tag/babylon
источник
Мы в MAX
👉@BookJava
👍2
Five Ways to Speed up Your Maven Builds
Как ускорить ваши Maven-сборки? «Поставить Gradle», — скажет кто-то. Ребята из Gradle считают иначе и даже подготовили статью на эту тему. По их мнению, в случае проблем со скоростью ваших сборок стоит присмотреться к профилям: возможно, некоторые плагины сильно замедляют сборку. С помощью профилей можно отключить часть плагинов для локальной или CI-сборки в зависимости от того, что вам нужно ускорить.
https://gradle.com/blog/five-ways-to-speed-up-your-apache-maven-builds/
Мы в MAX
👉@BookJava
Как ускорить ваши Maven-сборки? «Поставить Gradle», — скажет кто-то. Ребята из Gradle считают иначе и даже подготовили статью на эту тему. По их мнению, в случае проблем со скоростью ваших сборок стоит присмотреться к профилям: возможно, некоторые плагины сильно замедляют сборку. С помощью профилей можно отключить часть плагинов для локальной или CI-сборки в зависимости от того, что вам нужно ускорить.
https://gradle.com/blog/five-ways-to-speed-up-your-apache-maven-builds/
Мы в MAX
👉@BookJava
❤1👍1
Приглашаем на открытый урок.
🗓 22 октября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
Уже прошла эпоха монолита, когда целые компании занимались разработкой одного необъятного приложения. Сейчас любая информационная система насыщена различными сервисами, а микросервисами уже никого не удивишь.
Обязательным атрибутом собеседований стал вопрос про Saga, хореографию и оркестрацию.
И именно эту тему мы разберем на вебинаре в применении к Kotlin-разработке.
Что будет на вебинаре:
- Обсудим как традиционные оркестраторы типа Airflow или Camunda, так новых игроков.
- На практической части вебинара мы разработаем простое приложение, управляемое оркестратором.
🔗 Ссылка на регистрацию: https://vk.cc/cQqXLS
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮1
How to Use LazyConnectionDataSourceProxy with Spring Data JPA
Небольшая заметка о LazyConnectionDataSourceProxy — инструменте, который позволяет получать коннект к БД в Lazy-режиме, то есть в момент непосредственного выполнения запроса, что улучшает утилизацию коннектов и позволяет увеличить пропускную способность приложения.
https://vladmihalcea.com/lazyconnectiondatasourceproxy-spring-data-jpa/
Мы в MAX
👉@BookJava
👍3
Hibernate JAVA_TIME_USE_DIRECT_JDBC setting
Небольшая статья Vlad Mihalcea о настройке в Hibernate, которая позволяет маппить типы времени из java.time напрямую, без прослойки в виде объекта Timestamp. А еще рассматривается то, какими драйверами для популярных БД это поддерживается.
https://vladmihalcea.com/hibernate-type-java_time_use_direct_jdbc/
Мы в MAX
👉@BookJava
Небольшая статья Vlad Mihalcea о настройке в Hibernate, которая позволяет маппить типы времени из java.time напрямую, без прослойки в виде объекта Timestamp. А еще рассматривается то, какими драйверами для популярных БД это поддерживается.
https://vladmihalcea.com/hibernate-type-java_time_use_direct_jdbc/
Мы в MAX
👉@BookJava
👍3
🏗Курс “Software Architect” от OTUS — старт набора в группу обучения!
Если хотите проектировать отказоустойчивые и масштабируемые системы — этот курс для вас!
Почему стоит пойти:
- 100% практики на реальных проектах
- Проектирование гибких архитектур
- Микросервисы, интеграции, Big Data
- Современные паттерны: CQRS, Event Sourcing и др.
💡 Кому подойдёт:
- Разработчикам, готовым выйти на новый уровень
- Архитекторам, углубляющим экспертизу
- Тимлидам и менеджерам
✅После курса вы сможете:
- Проектировать масштабируемые архитектуры
- Оптимизировать взаимодействие сервисов
- Повышать качество и устойчивость систем
👉 Пройдите вступительное тестирование: https://vk.cc/cQvCcp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Если хотите проектировать отказоустойчивые и масштабируемые системы — этот курс для вас!
Почему стоит пойти:
- 100% практики на реальных проектах
- Проектирование гибких архитектур
- Микросервисы, интеграции, Big Data
- Современные паттерны: CQRS, Event Sourcing и др.
💡 Кому подойдёт:
- Разработчикам, готовым выйти на новый уровень
- Архитекторам, углубляющим экспертизу
- Тимлидам и менеджерам
✅После курса вы сможете:
- Проектировать масштабируемые архитектуры
- Оптимизировать взаимодействие сервисов
- Повышать качество и устойчивость систем
👉 Пройдите вступительное тестирование: https://vk.cc/cQvCcp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤1
Совет по Spring Boot 💡
Если вы используете DTO в Spring Data/JPA, вы можете автоматизировать отображение между сущностями и DTO с помощью библиотеки Blaze Persistence. Тогда вы сможете воспользоваться преимуществами, например, паттерна Spring repository.
Мы в MAX
👉@BookJava
Если вы используете DTO в Spring Data/JPA, вы можете автоматизировать отображение между сущностями и DTO с помощью библиотеки Blaze Persistence. Тогда вы сможете воспользоваться преимуществами, например, паттерна Spring repository.
Мы в MAX
👉@BookJava
👍4
Java. Сортировки
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
Мы в MAX
👉@BookJava
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
Мы в MAX
👉@BookJava
👍1
Что произойдет, если поместить оператор return или System.exit () в блок try/catch?
Это очень популярный вопрос "на засыпку" по Java. Хитрость его в том, что многие программисты считают, что блок
Ответ на этот каверзный вопрос: блок будет выполняться при помещении оператора return в блок , и не будет выполняться при вызове из блока оператора .
Мы в MAX
👉@BookJava
Это очень популярный вопрос "на засыпку" по Java. Хитрость его в том, что многие программисты считают, что блок
finally
выполнится в любом случае. Данный вопрос ставит эту концепцию под сомнение, путем помещения оператора return
в блок try/catch
или вызова из блока try/catch
оператора System.exit ()
.finally
try/catch
try/catch
System.exit ()
Мы в MAX
👉@BookJava
👍2
🔥Приглашаем на бесплатный вебинар курса “Software Architect”: «Способы разделения микросервисов»
Когда: 29 октября, 20:00 (мск)
О вебинаре
Узнайте, как проектировать масштабируемые микросервисные архитектуры. На открытом уроке курса Software Architect разберём, как разделять микросервисы, чтобы упростить разработку и повысить устойчивость систем.
Что узнаете:
- Применение DDD для декомпозиции микросервисов.
- Разделение сервисов по бизнес-функциям и данным.
- Практические кейсы для гибкости архитектуры.
Что освоите:
- Принципы эффективной декомпозиции.
- Методы для масштабируемых архитектур.
- Практические инструменты для проектов.
👉 Регистрируйтесь: https://vk.cc/cQB0Hz
Занятие приурочено к старту курса "Software Architect", обучение на котором позволит освоить компетенции архитектора по моделированию и построению отказоустойчивых, масштабируемых информационных систем.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Когда: 29 октября, 20:00 (мск)
О вебинаре
Узнайте, как проектировать масштабируемые микросервисные архитектуры. На открытом уроке курса Software Architect разберём, как разделять микросервисы, чтобы упростить разработку и повысить устойчивость систем.
Что узнаете:
- Применение DDD для декомпозиции микросервисов.
- Разделение сервисов по бизнес-функциям и данным.
- Практические кейсы для гибкости архитектуры.
Что освоите:
- Принципы эффективной декомпозиции.
- Методы для масштабируемых архитектур.
- Практические инструменты для проектов.
👉 Регистрируйтесь: https://vk.cc/cQB0Hz
Занятие приурочено к старту курса "Software Architect", обучение на котором позволит освоить компетенции архитектора по моделированию и построению отказоустойчивых, масштабируемых информационных систем.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576