Java Гениев
87 subscribers
204 photos
77 videos
180 links
Download Telegram
⚡️  Тест по Java от OTUS
Проверь насколько хорошо ты знаешь Java 

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

👉  ПРОЙТИ ТЕСТ: 
https://otus.pw/3EaK/?erid=LjN8K21s4

🎫  А ещё, сейчас действуют скидка на курс до 21.04. Возможна оплата в рассрочку! Предложение ограничено.

Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля
Сравните репозитории Spring Data

Основная часть работы в Spring Data строится вокруг интерфейса Repository. Это маркерный интерфейс. От него наследуются интерфейсы-специализации, которые уже содержат методы для работы с сущностями базы данных. Все эти интерфейсы параметризуются двумя типами: самой сущности и её идентификатора.

CrudRepository – базовый набор операций над сущностями: создание, чтение, изменение и удаление (CRUD).

PagingAndSortingRepository – добавляет к CRUD возможность постраничной загрузки данных с определенной сортировкой.

JpaRepository – расширение PagingAndSortingRepository, полноценно реализующее Java Persistence API. Добавляет ряд методов, таких как например flush и deleteInBatch.

MongoRepository – расширение PagingAndSortingRepository, специфичное для MongoDB.

Вспомогательные методы, специфичные для конкретной модели данных, добавляются в пользовательские интерфейсы-наследники. Основываясь на именах добавляемых методов, фреймворк сам создаёт их реализацию.

👉
🚀 Участвуй в True Tech Hack от МТС и поборись за общий призовой фонд в 1 500 000 рублей. Регистрируйся.

Приглашаем разработчиков, специалистов по Data Science, менеджеров по продукту, дизайнеров. Соревноваться предстоит в одном из двух треков, чтобы улучшить жизнь людей с особыми потребностями.

🏠 Трек 1. Улучшение клиентского опыта витрины МТС Live для пользователей с особыми потребностями
Трек 2. Разработка голосового управления для МТС Финтех на основе искусственного интеллекта для людей с ограниченными возможностями

Как пройдет True Tech Hack:
🔸 26 апреля – открытие хакатона и Q&A-сессия
🔸 27 апреля-12 мая – чек-поинты с экспертами
🔸 12 мая – окончание приема проектов
🔸 14 мая – полуфинал, защита лучших решений и объявление финалистов
🔸 17 мая – финал в Москве

True Tech Hack – твой шанс получить новый опыт, выиграть приз и сделать наш мир доступней и удобней для всех. Регистрируйся на хакатон до 25 апреля по ссылке.
JRE – Java Runtime Environment, Java-окружение времени выполнения. Это набор всего необходимого чтобы запустить скомпилированную Java-программу. Окружение состоит из виртуальной машины Java (JVM), библиотеки классов (Java Class Library), консольной команды java и прочей инфраструктуры. Тем не менее, JRE не достаточно чтобы создавать новые программы.

JDK – Java Development Kit, набор Java-разработчика. Это полнофункциональный SDK для Java. JDK включает в себя JRE, но кроме того содержит компилятор (javac) и другие инструменты разработки, такие как javadoc и jdb. С помощью JDK можно создавать и компилировать программы.

В большинстве случаев, если вам нужно только запускать Java программы, вы устанавливаете только JRE, если же вы планируете программировать на Java, вместо этого вам необходим JDK.

https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre/1906455#1906455

👉
Какие задачи решает Spring Data?

Это проект, который упрощает работу с системами доступа к данным: реляционными и нереляционными базами данных, map-reduce фреймворками и облачными хранилищами. Центральная концепция проекта – репозитории из предметно-ориентированного дизайна (Domain-driven design, DDD).

Spring Data состоит из множества отдельных библиотек для разных случаев жизни. Вот самые популярные из них:

Spring Data JPA – адаптер для реализаций Java Persistence API, таких как Hibernate.
Spring Data JDBC – более простой и ограниченный чем JPA адаптер для JDBC-драйверов.
Spring Data REST – создание готовых hypermedia-driven RESTful сервисов на основе репозиториев.
Spring Data KeyValue – работа с хранилищами типа ключ-значение.
• Библиотеки поддержки конкретных реализаций хранилищ: MongoDB, Redis, Cassandra, LDAP, и других.

👉
Кто такой архитектор ПО и как им стать?

Архитектор ПО — одна из самых востребованных позиций на современном рынке IT.

Узнайте, что нужно, чтобы претендовать на эту должность, на бесплатном практическом уроке от OTUS. Спикер — опытный эксперт из крупной компании. На вебинаре разберём:

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

Встречаемся 20 мая в 19:00 мск в рамках курса «Software Architect». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

Ссылка для регистрации: https://vk.cc/cwphbp

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

Как легко просуммировать все числа в Java-списке? Для этого мы можем использовать метод Java Stream
reduce


👉
В мае стартует новая программа «Java разработчик. Уровень Специалист».

Обучение проходит в мини-группе с преподавателем и живой практикой. Часть материалов — для самообучения.

Программа включает в себя:
📌 Применение ООП и функциональной парадигмы,
📌 Spring Framework, 
📌 работу с БД, 
📌 архитектуру REST, 
📌 вспомогательные инструменты Java-разработчика,
📌 продвинутые аспекты применения Java, 
📌 стандартную библиотеку Java II.

👉 Узнать подробнее 👈

Бонусы:
✔️ всем, кто запишется на программу до 17 мая, предоставляем бесплатный доступ к первым 5 урокам на 3 дня
✔️ подготовка к сдаче Java-сертификации и скидка 50% на ее прохождение
✔️ бесплатный курс «Разработка на Java и Spring с помощью Chat GPT: от составления ТЗ до модульного тестирования»

Реклама. АНО ДПО "УЦ ИБС". ИНН 7713388004. erid: LjN8K7PLn
Основы языка Java

Сериализация в Java
Отладка программ на Java в Intellij Idea
Сериализация в Java. Часть 2.

источник

👉
Перечислите стандартные функциональные интерфейсы

Стандартная библиотека содержит пакет java.util.function, в котором хранятся функциональные интерфейсы для большинства случаев жизни. Их можно разделить на 5 групп:

Функции
Обычная обобщенная функция – интерфейс Function<T, R>. Принимает параметр и возвращает значение другого типа. Для примитивов есть не-generic специализации – семейство интерфейсов XtoYFunction. (Здесь и далее вместо X и Y подставляются названия примитивов).

Бинарные функции – функции с двумя параметрами и возвращаемым значением. BiFunction<T, U, R>, ToXBiFunction<T, U>.

Поставщики (Suppliers)
Интерфейсы Supplier<T>, XSupplier – не принимают ничего, возвращают (поставляют) значение.

Потребители (Consumers)
Consumer<T>, XConsumer – принимают (потребляют) значение, ничего не возвращают.
Бинарный вариант, BiConsumer<T, U> и XYConsumer, потребляет два параметра.

Предикаты
Predicate<T>, XPredicate – принимают параметр, возвращают boolean. Кроме самой функции содержат дефолтные реализации логических операций.

Операторы
Унарный (UnaryOperator<T>) и бинарный (BinaryOperator<T>) – просто функция и би-функция с одинаковым типом параметров и результата. Специализации для примитивов XUnaryOperator и XBinaryOperator вдобавок содержат дефолтные реализации методов для композиции операторов.


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

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

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

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

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какие отличия между @⁠Component, @⁠Service, @⁠Repository и @⁠Controller?

– простой способ сделать объявление класса объявлением Spring-бина. Из всех компонентов, которые попали в сканирование (о которых знает ), будут созданы бин-дефинишны.

Остальные аннотации – это алиасы аннотации . Сами по себе они не добавляют поведения, и технически в рамках ядра Spring Framework работают так же.

Эти аннотации называют «Stereotype annotations». Их главное отличие – семантика, логическая роль компонентов:
@⁠Service – реализация бизнес-логики;
@⁠Repository – хранилище данных: «репозиторий» из Domain-Driven Design или классический DAO;
@⁠Controller – обработка веб-запросов (методы )

Сторонние компоненты могут пользоваться этой семантикой. Например, трансляция исключений Persistence API работает именно на компонентах стереотипа . Таким образом, в отдельных случаях кроме семантики может меняться и поведение кода библиотек.

👉
Как использовать ReadWriteLock?

Стандартный интерфейс ReadWriteLock предоставляет потокобезопасный разделенный доступ на чтение и на запись. Для этих целей в нём объявлены два метода: readLock() и writeLock(). Они возвращают объекты под интерфейсом Lock.

Оба типа блокировок одного экземпляра ReadWriteLock связаны. Пока какой-то поток не заберет блокировку на запись, сколько угодно потоков могут читать не мешая друг другу. Блокировкой readLock закрывается часть кода с семантикой «только чтения» некоторого условного «ресурса». В критической секции кода writeLock осуществляется модификация ресурса.

Свойства этих локов защищают программу от ситуаций конкурентной записи ресурса и чтения во время записи. Подобно copy-on-write коллекциям, этот подход становится выгодным, когда ресурс читают сильно чаще чем модифицируют.

Интерфейс реализуется классом ReentrantReadWriteLock, который во многом похож на обычный ReentrantLock.

👉
🎯 Исключения в разработке — что это и как с ними работать?

Узнайте на открытом практическом уроке «Исключения. От Java до Spring, от шестнадцати и старше» от OTUS.

На вебинаре опытный эксперт разберет:

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

И, конечно, мы не забудем про Spring!

Спикер — Senior Software Engineer.

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

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cwFN3f

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

Classpath – это параметр, который указывает приложениям где искать пользовательские классы. По этому адресу должны быть найдены все классы, для которых не применяются специальные загрузчики. На место поиска стандартных классов JRE этот параметр не влияет.

Кроме непосредственно Java-приложений (команда java), этот параметр применим и для других утилит JDK, таких как javac, javadoc и другие.

Есть два основных способа установки classpath: в переменной окружения ОС CLASSPATH, и в аргументе командной строки -cp (синоним -classpath). Второй способ предпочтительнее, потому что позволяет устанавливать разные значения для разных приложений. Значение по умолчанию – текущая директория.

В параметре передаются пути к jar-файлам и корневым директориям с пакетами. Пути разделяют символом : в параметре командной строки, или же ; в переменной окружения. Чтобы включить все файлы директории, разрешается использовать в конце пути символ *.

Если приложение запускается из jar-файла (java -jar), classpath должен быть указан в его манифесте.

👉
Подборка 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

👉