Java Гениев
87 subscribers
204 photos
77 videos
180 links
Download Telegram
Подборка Telegram каналов для программистов

Системное администрирование 📌
Типичный Сисадмин (фото железа, было/стало)
Книги для админов, полезные материалы
Все для системного администратора
Библиотека Системного Администратора
Чат системных администраторов
DevOps: Пишем о Docker, Kubernetes и др.
Новости Линукс Linux


Новости высоких технологий, науки и техники💡
Мир технологий (Technology World)

Полезный контент по программированию на Rust
Библиотека Go (Golang) разработчика

Программисты, дизайнеры, новости из мира IT.
Обучающие видео, книги по Физике и Математике

Библиотека PHP программиста 👨🏼‍💻👩‍💻
Подборки по Node js и все что с ним связано
Библиотека Ruby программиста

1C разработка 📌
Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
Библиотека C/C++ разработчика
Книги для программистов C/C++
Учим C/C++ на примерах

Программирование Python 📌
Python академия. Учи Python быстро и легко🐍
Библиотека Python разработчика
Python подборки на русском и английском
Книги по Python Rus

Java разработка 📌
Библиотека Java разработчика
Книги по Java Rus
Учим Java на примерах

GitHub Сообщество 📌
Интересное из GitHub

Базы данных (Data Base) 📌
Все про базы данных

Мобильная разработка: iOS, Android 📌
Мобильная разработка
Подборки полезного материала по Kotlin

Фронтенд разработка 📌
Подборки для frontend разработчиков
Frontend советы, примеры и практика!
Подборки по React js и все что с ним связано

Разработка игр 📌
Все о разработке игр

Вакансии 📌
Системный Администратор
Вакансии в IT

Чат программистов📌


Библиотеки 📌
Книги для программистов Rus
Книги по программированию
Библиотека программиста
Книги для программистов
Книги для программистов

БигДата, машинное обучение 📌
Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
Лекции, видеоуроки, доклады с IT конференций
Полезные советы по программированию

QA, тестирование 📌
Библиотека тестировщика

Шутки программистов 📌
Шутки программистов

Защита, взлом, безопасность 📌
Канал о кибербезопасности
Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
Статьи, книги для дизайнеров

Английский 📌
Английский с нуля

Математика 📌
Канал по математике

Excel лайфхак📌
Совет по Spring 💡

Вы можете преобразовать String RequestParams непосредственно в LocalDate на уровне запроса с помощью . Вам необходимо указать шаблон. Это может быть ваш собственный шаблон или шаблон ISO. Нет необходимости преобразовывать его «вручную».

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/format/annotation/DateTimeFormat.html

👉
👩‍💻 Как и зачем Java-разработчику сочетать DTO, MapStruct и Spring?

Расскажем на открытом практическом уроке от OTUS.
Спикер занятия — Senior Software Engineer.

На вебинаре мы:

- разберем паттерн DTO (Data Transfer Object);
- обсудим проблемы, которые решает паттерн и его основные сценарии использования на примере небольшого приложения на Spring Boot;
- изучим инструмент MapStruct, чтобы сделать данное сочетание удобным и сократить количество boilerplate кода.

Встречаемся 23 мая в 20:00 мск в преддверии старта курса «Разработчик на Spring Framework».
Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

➡️ Регистрация на урок: https://vk.cc/cwP72X

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Совет по Spring Boot 💡

Вы думаете о замене 🍃`RestTemplate` на новый Spring RestClient? Конфигурация SSL очень проста благодаря поддержке 🔐`SslBundles` через интерфейс RestClientSsl 👆

👉
Совет по Spring Boot 💡

Если вы используете DTO в Spring Data/JPA, вы можете автоматизировать отображение между сущностями и DTO с помощью библиотеки Blaze Persistence (https://persistence.blazebit.com). Тогда вы сможете воспользоваться преимуществами, например, паттерна Spring repository.

👉
AnyLogic — почему это ПО используют современные компании и зачем вам его осваивать?

Узнайте на открытом практическом уроке от OTUS, где мы разберем:

- что может AnyLogic, что не могут решатели дифференциальных уравнений, Excel и здравый смысл;
- основные возможности AnyLogic;
- основные логические блоки;
- начальную настройку любой модели;
- начальную настройку исходных чертежей.

Спикер — опытный разработчик, веб-дизайнер и преподаватель.

Встречаемся 23 мая в 20:00 мск в преддверии старта курса «Имитационное моделирование на базе AnyLogic». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cx02fN

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по Spring Boot💡

Используйте SpringApplicationBuilder для настройки запуска, свойств и профилей приложения.

https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/builder/SpringApplicationBuilder.html

👉
👩‍💻 Тест по Java от OTUS

Проверь насколько хорошо ты знаешь Java и готов освоить Spring!

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cx1G3c

🎫 Курс можно приобрести в рассрочку

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Что можно импортировать статически?

Обычный импорт избавляет от необходимости писать полное имя классов: при использовании можно не указывать пакет. Статические импорты делает то же самое, но для статических членов класса.

Самое распространенное применение статического импорта – включение констант из константных интерфейсов и статических методов из утилитарных классов. Но также можно включать и изменяемые статические поля других классов.

Отдельно интересен случай nested-класса. Он одновременно является и классом, и статическим членом другого класса. Поэтому для него работает как обычный, так и статический импорт.

Языковая конструкция static import обязана располагаться там же, где и обычные импорты – обязательно между package и объявлением основного класса файла.

👉
This media is not supported in your browser
VIEW IN TELEGRAM
Мечтаешь об успешной карьере в Java-разработке, но не знаешь, с чего начать
Прокачайся бесплатно в ИТ-лагере T1.Дебют!

🌟 Приглашаем студентов и выпускников всей страны в ИТ-лагерь — это новый образовательный интенсив для Java-разработчиков от Холдинга Т1 — крупнейшей ИКТ-компании в России по версии RAEX 2023.

ИТ-лагерь проходит в два этапа: 1 месяц онлайн-обучения и неделя летнего атмосферного офлайн-буткемпа! ☀️

Гибкий формат позволяет совмещать обучение в ИТ-лагере со сдачей сессии или работой.

Финалисты получат сертификат на оплачиваемую стажировку, а лучших выпускников с опытом сразу пригласят в команду Т1.

🗓 Подай заявку до 31 мая

Реклама. ООО "Т1". ИНН 7720484492.
new Integer(128) == 128?

Для всех классов-оберток над примитивами кроме Float и Double работает механизм кэширования. Некоторые значения создаются на этапе инициализации класса, и переиспользуются когда объект создается не оператором new (например с помощью valueOf).

Кэшируемые значения – оба возможных Boolean, Character до '\u007f' (127) и все целые числа от -128 до 127 включительно. С Java 7 верхнюю границу для Integer можно увеличить параметром java.lang.Integer.IntegerCache.high.

Значения кэшируются и во многих других встроенных классах: BigDecimal, Currency, пустые коллекции. Детали можно узнавать из исходников и документаций, так как эти кэши реализованы не на уровне JVM а в коде классов.

В конкретно этом примере скрыт еще один подвох: объект класса-обертки сравнивается с примитивом. Это приводит к анбоксингу и сравнению значений. И ответ на вопрос – да.

👉
Почему интерактивная разработка на Clojure — это круто?

В Clojure ты можешь запустить программу всего один раз и взаимодействовать с ней на протяжении всего процесса разработки в реальном времени. Хочешь разобраться? Тогда ждем тебя на открытом практическом уроке от OTUS, где мы разберем:

▫️как добавлять новые функции или менять состояние программы;
▫️как «прощупывать» любые данные и пошагово отлаживать код;
▫️как запускать тесты и подключаться к внешним системам.

И всё это не выходя из интерактивной среды разработки REPL!

Встречаемся 30 мая в 20:00 мск в рамках курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!

➡️ Регистрируйся прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cx3CGN

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как инициализировать переменную функционального интерфейса?

Функциональный интерфейс – всё ещё интерфейс, поэтому остаются доступными стандартные способы. Интерфейс можно реализовать обычным классом, и затем создать его экземпляр оператором new. Можно совместить эти два действия, и создать экземпляр анонимного класса.

Основное преимущество, которое дает функциональный интерфейс – два дополнительных способа инициализации параметров и переменных.

1. Лямбда-выражение: (x, y) -> x * y
2. Ссылка на метод: Math::sqrt

На эти способы накладывается небольшое ограничение: тип функционального параметра/переменной должен быть указан явно. Это значит, что лямбдой или метод-референсом нельзя инициализировать переменную, объявленную ключевым словом var. Также, чтобы передать лямбду или референс в параметр generic-типа, этот тип должен быть ограничен функциональным интерфейсом (должен стираться в него).

👉
Совет по Java 💡☕️

Чтобы получить все дни месяца, вы можете начать с объекта YearMonth, получить его первый день, а затем использовать функцию datesUntil(), которая возвращает Stream всех дней до указанной даты.

👉
👩‍💻 Хотите стать Java-разработчиком, но думайте, что изучение основ программирования — это скучно?

Только не в нашем формате!
Ждём вас на открытом практическом уроке от OTUS, где мы:

- установим все, что необходимо для программирования на языке Java;
- изучим несколько базовых блоков, из которых строятся любые приложения;
- на практике посмотрим, как создаются программы на языке Java на примере простой консольной игры.

📌После вебинара вы сможете самостоятельно написать похожее приложение и даже улучшить его!

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный ментор, кандидат технических наук.

Встречаемся 29 мая в 20:00 мск в рамках курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cx3JsJ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚀 Spring Boot с DevTools для Live Reload🚀

Ускорьте разработку с помощью DevTools! 🔥

https://docs.spring.io/spring-boot/reference/using/devtools.html

👉
Внутри JVM: Массивы и их отличие от других объектов

Массивы являются уникальными объектами в JVM, и понимание их структуры позволяет лучше писать код.
Самый простой способ классификации элементов данных Java - это разделение их на примитивы и объекты. К примитивам, как известно большинству разработчиков Java, относятся булевы числа, байты, символы, варианты целых чисел (short, int и long), а также варианты чисел с плавающей точкой (floats и doubles). Внутри JVM эти примитивы инстанцируются в "сыром" виде. Объявление int создает для JVM 32-разрядное знаковое целое поле, с которым она может работать. Чаще всего эти примитивы создаются в стеке операндов, который строится при каждом вызове метода. (Заметным исключением являются статические примитивы, которые создаются в куче).

https://blogs.oracle.com/javamagazine/post/java-array-objects

👉
👩‍💻 Пройди тест по Java и проверь свои знания.

Ответишь
— пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cx5tGb

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет

Если вы хотите узнать, когда произойдет совпадение заданного выражения cron, вы можете использовать класс Spring CronExpression.
Он принимает выражение cron expr и с помощью метода next() определяет следующее совпадение после заданного момента времени.

👉
📌 Java Collections

👉