Forwarded from Java Guru 🤓
Как оптимизировать код?
Anonymous Quiz
42%
Использовать Мар для хранения скидок
52%
Использовать switch-case
0%
Добавить новые условия
3%
Применить цепочку тернарных операторов
2%
Использовать регулярные выражения
😁27👍10🔥5
Можно ли считать Final переменную константой?
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
@javalib #java
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
@javalib #java
👍12❤3
Forwarded from Java Guru 🤓
Какой результат выведет программа?
Anonymous Quiz
6%
10
36%
11
46%
12
6%
13
6%
Когда выведет, тогда и скажу 😂
👍14🔥6🎅5
⚡️Хотите стать экспертом в разработке на Spring Framework?
Обучение «Разработчик на Spring Framework» от OTUS — это практический подход к освоению самого востребованного фреймворка для Java-разработчиков. Узнайте, как создавать веб-приложения на микросервисной архитектуре, автоматизировать задачи с Spring Boot и реализовывать высокоуровневые решения!
В конце курса у вас будет портфолио из готовых приложений и глубокое понимание работы со Spring. Пройдите вебинар-собеседование, чтобы быть готовым к реальным интервью.
👉Запишитесь на курс сейчас и перейдите на новый профессиональный уровень с дипломом, признанным крупными компаниями: https://vk.cc/cG9Sm7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Обучение «Разработчик на Spring Framework» от OTUS — это практический подход к освоению самого востребованного фреймворка для Java-разработчиков. Узнайте, как создавать веб-приложения на микросервисной архитектуре, автоматизировать задачи с Spring Boot и реализовывать высокоуровневые решения!
В конце курса у вас будет портфолио из готовых приложений и глубокое понимание работы со Spring. Пройдите вебинар-собеседование, чтобы быть готовым к реальным интервью.
👉Запишитесь на курс сейчас и перейдите на новый профессиональный уровень с дипломом, признанным крупными компаниями: https://vk.cc/cG9Sm7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍4❤2🔥2
Media is too big
VIEW IN TELEGRAM
Java Аннотации: Полное Руководство + Создание Собственных Аннотаций
Узнайте всё о Java аннотациях! 🚀
В этом видео мы разберёмся, что такое аннотации в Java, как они работают и почему без них не обходятся такие фреймворки, как Spring, Hibernate и JUnit. Вы узнаете:
✅ Основные аннотации Java (@Override, @Entity, @Test)
✅ Как работают @Target, @Retention и другие мета-аннотации
✅ Как создать собственную аннотацию и обработать её с помощью рефлексии
✅ Примеры реального использования аннотаций в разработке приложений
Мы покажем код, разберём логику работы аннотаций и создадим собственную аннотацию для валидации полей. Это обязательное видео для всех, кто хочет прокачать свои навыки Java!
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
Узнайте всё о Java аннотациях! 🚀
В этом видео мы разберёмся, что такое аннотации в Java, как они работают и почему без них не обходятся такие фреймворки, как Spring, Hibernate и JUnit. Вы узнаете:
✅ Основные аннотации Java (@Override, @Entity, @Test)
✅ Как работают @Target, @Retention и другие мета-аннотации
✅ Как создать собственную аннотацию и обработать её с помощью рефлексии
✅ Примеры реального использования аннотаций в разработке приложений
Мы покажем код, разберём логику работы аннотаций и создадим собственную аннотацию для валидации полей. Это обязательное видео для всех, кто хочет прокачать свои навыки Java!
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3🎄1
Метод PutAll()
Метод putAll() используется для копирования всех элементов одной хэш-таблицы или Map в другую. Он принимает в качестве аргумента другую Map или хэш-таблицу, и копирует все её пары ключ-значение в исходную коллекцию.
Метод putAll() не возвращает значения и не бросает исключений.
Этот метод удобен, когда нужно быстро скопировать данные из одной коллекции в другую. Он работает быстрее, чем добавлять элементы в цикле.
Если в конечной коллекции уже есть ключи, которые содержатся в исходной Map, то значения этих ключей будут перезаписаны.
Также с помощью этого метода можно объединять данные из нескольких Map в одну целевую коллекцию.
@javalib #java
Метод putAll() используется для копирования всех элементов одной хэш-таблицы или Map в другую. Он принимает в качестве аргумента другую Map или хэш-таблицу, и копирует все её пары ключ-значение в исходную коллекцию.
Метод putAll() не возвращает значения и не бросает исключений.
Этот метод удобен, когда нужно быстро скопировать данные из одной коллекции в другую. Он работает быстрее, чем добавлять элементы в цикле.
Если в конечной коллекции уже есть ключи, которые содержатся в исходной Map, то значения этих ключей будут перезаписаны.
Также с помощью этого метода можно объединять данные из нескольких Map в одну целевую коллекцию.
@javalib #java
👍12🔥5❤2
🗓 Дата: 19 декабря в 20:00 мск.
Программа урока:
- Введение в Resilience4.
- Применение Resilience4j для улучшения стабильности.
🔗 Регистрация на вебинар: https://vk.cc/cGapcZ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥2😁1
Как работает Pageable в Spring❓
Pageable — это мощный инструмент в Spring Data для работы с большими объемами данных, который позволяет разделить результат на страницы. Это оптимизирует память и улучшает производительность.
Вместо загрузки всех записей, например через findAll(), мы можем запросить только определенное количество данных (порции/страницы) и продолжать загружать по мере необходимости. Интерфейс Pageable создает запрос с параметрами LIMIT и OFFSET, что позволяет базе данных возвращать только нужные записи, начиная с определенного места.
*️⃣ Пример использования:
🟡 Репозиторий:
🟡 Сервис:
Здесь PageRequest.of(page, size, Sort) создает объект Pageable, который указывает, какую страницу и сколько записей нужно получить, а также сортирует результат по имени в порядке возрастания.
🟡 Контроллер:
Этот эндпоинт позволяет запрашивать данные по страницам. Например, /users?page=1&size=20 вернет вторую страницу с 20 записями.
*️⃣ Преимущества использования Pageable:
- Экономия памяти: Мы загружаем только небольшие порции данных.
- Легкость навигации: Можно переключаться между страницами.
*️⃣ Недостатки использования Pageable:
- Дополнительный запрос для подсчета записей: Spring Data выполняет запрос для получения общего числа записей.
- Ограниченная гибкость: При сложных запросах с множеством фильтраций и джоинов Pageable может быть не таким гибким, как ручные запросы с LIMIT и OFFSET.
❗️ Важно: Пагинация удобна для больших объемов данных, но если данные постоянно обновляются, возможны проблемы с консистентностью между страницами. Записи могут дублироваться или пропадать.
@javalib #java
Pageable — это мощный инструмент в Spring Data для работы с большими объемами данных, который позволяет разделить результат на страницы. Это оптимизирует память и улучшает производительность.
Вместо загрузки всех записей, например через findAll(), мы можем запросить только определенное количество данных (порции/страницы) и продолжать загружать по мере необходимости. Интерфейс Pageable создает запрос с параметрами LIMIT и OFFSET, что позволяет базе данных возвращать только нужные записи, начиная с определенного места.
public interface UserRepository extends JpaRepository<User, Long> {}@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public Page<User> getUsersByPage(int page, int size) {
Pageable pageable = PageRequest.of(page, size, Sort.by("name").ascending());
return userRepository.findAll(pageable);
}
}
Здесь PageRequest.of(page, size, Sort) создает объект Pageable, который указывает, какую страницу и сколько записей нужно получить, а также сортирует результат по имени в порядке возрастания.
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public Page<User> getUsers(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "20") int size) {
return userService.getUsersByPage(page, size);
}
}
Этот эндпоинт позволяет запрашивать данные по страницам. Например, /users?page=1&size=20 вернет вторую страницу с 20 записями.
- Экономия памяти: Мы загружаем только небольшие порции данных.
- Легкость навигации: Можно переключаться между страницами.
- Дополнительный запрос для подсчета записей: Spring Data выполняет запрос для получения общего числа записей.
- Ограниченная гибкость: При сложных запросах с множеством фильтраций и джоинов Pageable может быть не таким гибким, как ручные запросы с LIMIT и OFFSET.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤6🔥4
⚡️Как проектировать базы данных так, чтобы впоследствии не приходилось тушить пожары в результате не оптимально заложенных основ?
👉 Приглашаем на курс "PostgreSQL для профессионалов", который обеспечит глубокое погружение в PostgreSQL!
На курсе вы:
- Научитесь настраивать кластер PostgreSQL на оптимальную производительность
- Организуете систему резервного копирования
- Научитесь выяснять причины сбоев, блокировок и deadlock и оперативно решать эти проблемы
- Сможете использовать индексы, джойны и статистику для оптимизации производительности
- Освоите синтаксис и особенности работы в PostgreSQL
- Изучите пути решения проблем работы с большими объемами данных в PostgreSQL
Записывайтесь на курс уже сейчас и получите скидку! https://vk.cc/cGbWNj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👉 Приглашаем на курс "PostgreSQL для профессионалов", который обеспечит глубокое погружение в PostgreSQL!
На курсе вы:
- Научитесь настраивать кластер PostgreSQL на оптимальную производительность
- Организуете систему резервного копирования
- Научитесь выяснять причины сбоев, блокировок и deadlock и оперативно решать эти проблемы
- Сможете использовать индексы, джойны и статистику для оптимизации производительности
- Освоите синтаксис и особенности работы в PostgreSQL
- Изучите пути решения проблем работы с большими объемами данных в PostgreSQL
Записывайтесь на курс уже сейчас и получите скидку! https://vk.cc/cGbWNj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍5❤2🔥2
Forwarded from Java Guru 🤓
Что выведет программа?
Anonymous Quiz
14%
Ошибка компиляции, так как нельзя изменять финальный список.
6%
RuntimeException, так как нельзя изменять финальный список.
6%
IllegalStateException, так как нельзя изменять финальный список.
73%
Java is The best!, так как список изменяемый.
🔥14👍9
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
👍6🔥2🎄2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4🎄4🎅2❤1
Интерфейс Iterable
Iterable используется для представления коллекций, которые можно итерировать или пройти в цикле.
Он определяет метод iterator(), который возвращает объект Iterator.
Этот Iterator позволяет поочередно получать элементы коллекций, также его можно использовать в цикле while или for-each для последовательного перебора всех элементов коллекции.
Это позволяет абстрагироваться от конкретного типа коллекции. Мы можем работать с Iterable и Iterator, не завися от того список это, множество или очередь. Такой подход упрощает использование разных коллекций.
@javalib #java
Iterable используется для представления коллекций, которые можно итерировать или пройти в цикле.
Он определяет метод iterator(), который возвращает объект Iterator.
Этот Iterator позволяет поочередно получать элементы коллекций, также его можно использовать в цикле while или for-each для последовательного перебора всех элементов коллекции.
Это позволяет абстрагироваться от конкретного типа коллекции. Мы можем работать с Iterable и Iterator, не завися от того список это, множество или очередь. Такой подход упрощает использование разных коллекций.
@javalib #java
👍15❤4🔥3🎄2
🆕💥 Backend-разработчик, получи актуальные знания о микросервисах!
Умение строить архитектуру микросервисов — навык, необходимый Senior разработчикам и тем, кто хочет стать архитектором ПО. Переходи на сайт, чтобы проверить свои знания ипосмотреть подходит ли тебе 💥 обновленная программа курса Microservice Architecture от OTUS?
Если успешно пройдешь тест, сможешь забронировать место в группе по🌲 новогодней скидке! Не забудь активировать промокодMicroservice_12
🎫 Курс можно приобрести в рассрочку
🔴 Пройти тест и забрать скидку: https://vk.cc/cGkXFI
Умение строить архитектуру микросервисов — навык, необходимый Senior разработчикам и тем, кто хочет стать архитектором ПО. Переходи на сайт, чтобы проверить свои знания и
Если успешно пройдешь тест, сможешь забронировать место в группе по🌲 новогодней скидке! Не забудь активировать промокод
🎫 Курс можно приобрести в рассрочку
🔴 Пройти тест и забрать скидку: https://vk.cc/cGkXFI
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576👍5❤2🔥2
Media is too big
VIEW IN TELEGRAM
What's New in Spring Batch 5.2
hi, Spring fans! Spring Boot 3.4 is here and with it comes a bevy of ecosystem upgrades. in this video we look at the latest-and-greatest in Spring Batch 5.2!
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
hi, Spring fans! Spring Boot 3.4 is here and with it comes a bevy of ecosystem upgrades. in this video we look at the latest-and-greatest in Spring Batch 5.2!
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🎄2
Хватит разворачивать приложения наугад! Docker — must-have инструмент для современных Java-разработчиков.
🔍 На открытом уроке разберем, как контейнеризация упрощает разработку и развертывание приложений. Узнаете всё: от создания Docker-контейнеров до профилирования.
👉 Запускайте Java-приложения в облаке, тестируйте их под нагрузкой, отлаживайте с точностью хирурга. Начните путь к новой профессиональной высоте!
🗓 Запишитесь на урок «Контейнеризация Java-приложений с Docker» 27 декабря в 20:00 уже сейчас! Участникам — скидки на курс «Java Developer. Advanced»: https://vk.cc/cGlGb0
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🔍 На открытом уроке разберем, как контейнеризация упрощает разработку и развертывание приложений. Узнаете всё: от создания Docker-контейнеров до профилирования.
👉 Запускайте Java-приложения в облаке, тестируйте их под нагрузкой, отлаживайте с точностью хирурга. Начните путь к новой профессиональной высоте!
🗓 Запишитесь на урок «Контейнеризация Java-приложений с Docker» 27 декабря в 20:00 уже сейчас! Участникам — скидки на курс «Java Developer. Advanced»: https://vk.cc/cGlGb0
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❤3👍3🔥2
LongAdder
LongAdder — это класс из пакета java.util.concurrent, оптимизированный для высокопроизводительного параллельного суммирования long значений.
LongAdder применяется в многопоточных приложениях, когда нужно эффективно подсчитать сумму или другое агрегатное значение из нескольких потоков.
Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Лучше масштабируется на большом кол-ве ядер.
@javalib #java
LongAdder — это класс из пакета java.util.concurrent, оптимизированный для высокопроизводительного параллельного суммирования long значений.
LongAdder применяется в многопоточных приложениях, когда нужно эффективно подсчитать сумму или другое агрегатное значение из нескольких потоков.
Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Лучше масштабируется на большом кол-ве ядер.
@javalib #java
👍7🔥3❤2