Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🤣1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет!✌️
Сегодня в 16:00 по МСК, я предлагаю вновь встретиться в Яндекс.Телемост!
Сегодня я хочу рассказать Вам о классах Pageable, Specification и немного о Criteria API.
Узнаем, для чего нам пагинация, фильтрация и как это работает под капотом.
Жду всех!👍
Сегодня в 16:00 по МСК, я предлагаю вновь встретиться в Яндекс.Телемост!
Сегодня я хочу рассказать Вам о классах Pageable, Specification и немного о Criteria API.
Узнаем, для чего нам пагинация, фильтрация и как это работает под капотом.
Жду всех!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
А вы придете на встречу?
Anonymous Poll
36%
Да, я конечно буду!
44%
Я хотел бы, но к сожалению не могу 😕
12%
Что за встреча? Где я? 😀
8%
Херней страдаете! Идите учите Java😡
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Пагинация и фильтрация средствами JAVA.
Встреча от 20.04.2025
Запись встречи -
YOUTUBE
RUTUBE
На сегодняшней встрече мы разобрали такую немаловажную и довольно часто встречающуюся тему как пагинация и фильтрация средствами JAVA.
Что мы узнали:
➡️ Что такое пагинация и зачем она нужна.
➡️ Как реализованы интерфейсы Pageable и Specification.
➡️ Рассмотрели способы реализации пагинации и фильтрации.
➡️ Написали небольшой проект, где все это пощупали руками.
Максимально подробно все реализовано в GitHub - https://github.com/Oleborn/ReserchPagebleAndSpecification
Смотрите, комментируйте, задавайте вопросы! Обязательно подписывайтесь на ютуб и рутюб каналы!!!
Всем кто пришел и помогал вопросами, моя большая благодарность! 🤙
Встреча от 20.04.2025
Запись встречи -
YOUTUBE
RUTUBE
На сегодняшней встрече мы разобрали такую немаловажную и довольно часто встречающуюся тему как пагинация и фильтрация средствами JAVA.
Что мы узнали:
Максимально подробно все реализовано в GitHub - https://github.com/Oleborn/ReserchPagebleAndSpecification
Смотрите, комментируйте, задавайте вопросы! Обязательно подписывайтесь на ютуб и рутюб каналы!!!
Всем кто пришел и помогал вопросами, моя большая благодарность! 🤙
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1 1
"Безопасность — это процесс, а не продукт."
Брюс Шнайер, эксперт по криптографии, сказал это в 2000 году в статье для журнала Information Security.
Почитать короткую биографию
И о его работах
#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
Wikipedia
Bruce Schneier
American computer scientist
👍3
Record классы в Java
Record классы в Java — это специальный вид классов, введенный в Java 16 (JEP 395) как финальная фича после предварительных версий в Java 14 и 15. Они предназначены для упрощения создания неизменяемых (immutable) классов, которые используются для хранения данных, таких как DTO (Data Transfer Objects) или простые модели данных. Основная цель record классов — сократить объем шаблонного кода (boilerplate code), который обычно пишется для классов, хранящих данные, например, для геттеров, конструкторов, методов equals(), hashCode() и toString().
Объявление record класса выглядит следующим образом:
В этом примере Person — это record класс с двумя компонентами: name (тип String) и age (тип int).
При компиляции Java автоматически генерирует для этого класса следующее:
Финальные приватные поля для каждой компоненты (name и age).
Публичные методы доступа (геттеры) с именами, совпадающими с названиями компонент, например, name() и age().
Конструктор, который принимает все компоненты и инициализирует их.
Реализацию методов equals(), hashCode() и toString(), которые учитывают все компоненты.
Важно отметить, что record классы по умолчанию неизменяемы: после создания объекта его состояние нельзя изменить, так как поля финальные. Это делает их особенно удобными для безопасной передачи данных, например, в многопоточных приложениях.
Record классы также имеют ряд ограничений. Они не могут наследоваться от других классов (хотя могут реализовывать интерфейсы), и нельзя добавлять новые поля экземпляра, помимо компонент, указанных в объявлении. Однако можно определять статические поля, методы и даже конструкторы с дополнительной логикой.
Пример использования:
#Java #Training #Medium #Record
Record классы в Java — это специальный вид классов, введенный в Java 16 (JEP 395) как финальная фича после предварительных версий в Java 14 и 15. Они предназначены для упрощения создания неизменяемых (immutable) классов, которые используются для хранения данных, таких как DTO (Data Transfer Objects) или простые модели данных. Основная цель record классов — сократить объем шаблонного кода (boilerplate code), который обычно пишется для классов, хранящих данные, например, для геттеров, конструкторов, методов equals(), hashCode() и toString().
Объявление record класса выглядит следующим образом:
public record Person(String name, int age) {}
В этом примере Person — это record класс с двумя компонентами: name (тип String) и age (тип int).
При компиляции Java автоматически генерирует для этого класса следующее:
Финальные приватные поля для каждой компоненты (name и age).
Публичные методы доступа (геттеры) с именами, совпадающими с названиями компонент, например, name() и age().
Конструктор, который принимает все компоненты и инициализирует их.
Реализацию методов equals(), hashCode() и toString(), которые учитывают все компоненты.
Важно отметить, что record классы по умолчанию неизменяемы: после создания объекта его состояние нельзя изменить, так как поля финальные. Это делает их особенно удобными для безопасной передачи данных, например, в многопоточных приложениях.
Record классы также имеют ряд ограничений. Они не могут наследоваться от других классов (хотя могут реализовывать интерфейсы), и нельзя добавлять новые поля экземпляра, помимо компонент, указанных в объявлении. Однако можно определять статические поля, методы и даже конструкторы с дополнительной логикой.
Пример использования:
Person person = new Person("Alice", 25);
System.out.println(person.name()); // Alice
System.out.println(person.age()); // 25
System.out.println(person); // Person[name=Alice, age=25]
#Java #Training #Medium #Record
👍5
Что выведет код?
#Tasks
public class Task210425 {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add(new String("Java"));
set.add(new String("Java"));
set.add("Python");
set.add("Python".intern());
System.out.println(set.size());
}
}
#Tasks
👍3
Вопросы с собеседования 👩💻
Какой метод используется для удаления первого элемента в LinkedList?
Какой метод используется для удаления первого элемента в LinkedList?
Anonymous Quiz
9%
remove()
19%
deleteFirst()
57%
removeFirst()
15%
pop()
👍1
Кастомизация и использование Record классов
Record классы в Java не только упрощают написание кода, но и предоставляют гибкость для настройки под конкретные задачи. Хотя многое генерируется автоматически, разработчик может переопределить или добавить поведение, если это необходимо.
Кастомные конструкторы.
В record классе можно определить собственный конструктор, чтобы добавить валидацию или преобразование данных. Например:
Здесь используется компактная форма конструктора (без круглых скобок), но можно написать и полный конструктор с явным указанием параметров. Это полезно для проверки входных данных или их нормализации.
Добавление методов.
Record классы поддерживают определение как статических, так и экземплярных методов. Например, можно добавить метод для вычисления чего-либо на основе компонент:
Переопределение стандартных методов.
Если автоматически сгенерированные методы equals(), hashCode() или toString() не подходят, их можно переопределить. Например, можно настроить toString() для специфического формата:
Реализация интерфейсов.
Record классы могут реализовывать интерфейсы, что делает их полезными для интеграции с существующими системами:
Примеры использования.
Record классы идеально подходят для моделирования данных в API, конфигураций или результатов запросов. Например, в веб-приложении record может представлять ответ от сервера:
Или для представления точки в двумерном пространстве с дополнительной логикой:
Когда использовать record классы?
Они лучше всего подходят, когда нужен простой, неизменяемый контейнер данных с минимальной логикой. Если требуется сложная бизнес-логика или изменяемость, обычные классы могут быть предпочтительнее.
Ограничения и подводные камни.
Record классы нельзя расширять (они финальные), и они не поддерживают добавление нестатических полей вне компонент. Также стоит помнить, что автоматическая генерация методов (например, equals()) может не учитывать специфические требования, поэтому иногда нужно их переопределять вручную.
#Java #Training #Medium #Record
Record классы в Java не только упрощают написание кода, но и предоставляют гибкость для настройки под конкретные задачи. Хотя многое генерируется автоматически, разработчик может переопределить или добавить поведение, если это необходимо.
Кастомные конструкторы.
В record классе можно определить собственный конструктор, чтобы добавить валидацию или преобразование данных. Например:
public record Person(String name, int age) {
public Person {
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative");
}
name = name.trim(); // Удаляем пробелы
}
}
Здесь используется компактная форма конструктора (без круглых скобок), но можно написать и полный конструктор с явным указанием параметров. Это полезно для проверки входных данных или их нормализации.
Добавление методов.
Record классы поддерживают определение как статических, так и экземплярных методов. Например, можно добавить метод для вычисления чего-либо на основе компонент:
public record Person(String name, int age) {
public String greeting() {
return "Hello, my name is " + name + " and I'm " + age;
}
}
Переопределение стандартных методов.
Если автоматически сгенерированные методы equals(), hashCode() или toString() не подходят, их можно переопределить. Например, можно настроить toString() для специфического формата:
public record Person(String name, int age) {
@Override
public String toString() {
return name + ", " + age + " years old";
}
}
Реализация интерфейсов.
Record классы могут реализовывать интерфейсы, что делает их полезными для интеграции с существующими системами:
public record Person(String name, int age) implements Comparable<Person> {
@Override
public int compareTo(Person other) {
return this.name.compareTo(other.name);
}
}
Примеры использования.
Record классы идеально подходят для моделирования данных в API, конфигураций или результатов запросов. Например, в веб-приложении record может представлять ответ от сервера:
public record ApiResponse(int status, String message, LocalDateTime timestamp) {}
Или для представления точки в двумерном пространстве с дополнительной логикой:
public record Point(double x, double y) {
public double distanceTo(Point other) {
return Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y - other.y, 2));
}
}
Когда использовать record классы?
Они лучше всего подходят, когда нужен простой, неизменяемый контейнер данных с минимальной логикой. Если требуется сложная бизнес-логика или изменяемость, обычные классы могут быть предпочтительнее.
Ограничения и подводные камни.
Record классы нельзя расширять (они финальные), и они не поддерживают добавление нестатических полей вне компонент. Также стоит помнить, что автоматическая генерация методов (например, equals()) может не учитывать специфические требования, поэтому иногда нужно их переопределять вручную.
#Java #Training #Medium #Record
👍1