Forwarded from Java Guru 🤓
Что делает аннотация @CsvSource в данном тесте?
Anonymous Quiz
64%
Передаёт набор данных для выполнения параметризованных тестов
22%
Загружает данные для тестов из внешнего CSV-файла
3%
Генерирует случайные параметры для теста
2%
Осуществляет запуск тестов в определённой последовательности
9%
Изменяет поведение метода, чтобы возвращать значения из CSV
👍8🔥5😁5❤1
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
👩💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.
👩💻 Kotlin Developer - самый топовый канал для котлин разработчика!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥2
Конструктор по умолчанию
Конструктор по умолчанию предоставляется компилятором Java, если в классе не определен ни один другой конструктор. Конструктор по умолчанию инициализирует все поля класса значениями по умолчанию (например, 0 для числовых типов, false для типа boolean, null для ссылочных типов).
Если же в классе определен хотя бы один конструктор (с параметрами или без), компилятор не будет предоставлять конструктор по умолчанию, и его необходимо определить явно, если он нужен.
В этом примере мы определяем класс MyClass с двумя полями: x и y, а также определяем конструктор по умолчанию, который выводит сообщение при вызове. В методе main создаем экземпляр класса MyClass, используя конструктор по умолчанию, и выводим значения полей x и y, которые инициализированы значениями по умолчанию.
@javalib #java
Конструктор по умолчанию предоставляется компилятором Java, если в классе не определен ни один другой конструктор. Конструктор по умолчанию инициализирует все поля класса значениями по умолчанию (например, 0 для числовых типов, false для типа boolean, null для ссылочных типов).
Если же в классе определен хотя бы один конструктор (с параметрами или без), компилятор не будет предоставлять конструктор по умолчанию, и его необходимо определить явно, если он нужен.
В этом примере мы определяем класс MyClass с двумя полями: x и y, а также определяем конструктор по умолчанию, который выводит сообщение при вызове. В методе main создаем экземпляр класса MyClass, используя конструктор по умолчанию, и выводим значения полей x и y, которые инициализированы значениями по умолчанию.
@javalib #java
👍13❤3🔥2
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