Class.getPermittedSubclasses() возвращает список всех классов, которым разрешено наследовать sealed-класс. Это полезно для анализа и валидации иерархий sealed-типов во время выполнения, особенно в плагин-системах и фреймворках.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Пояснение
a == b — false, потому что b — новый объект в куче.
a == c — true, потому что строковые литералы из пула строк указывают на один объект.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👍6
Java 10 ввела полезную возможность создания неизменяемых копий коллекций с помощью новых методов copyOf.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔2
Java предоставляет множество возможностей для оптимизации производительности приложений.
java -XX:+UseG1GC G1GCExample
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Этот код настраивает HTTP-прокси для Java-приложения, устанавливая адрес, порт, имя пользователя и пароль прокси-сервера.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10😱1
Метод
of() обеспечивает компактный способ создания неизменяемых коллекций.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
В Java часто приходится сталкиваться с проблемой, когда метод возвращает
null, что может привести к NullPointerException. Чтобы избежать таких ситуаций, можно использовать класс Optional.null.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Часто возникает необходимость объединять несколько строк в одну, используя определенный разделитель.
StringBuilder. С появлением метода String.join, эта задача стала намного проще и лаконичнее.Использование метода String.join значительно упрощает задачу объединения строк с разделителем, делая код более читаемым и сокращая количество кода, которое нужно написать и поддерживать.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
Records — это новый тип классов в Java, который значительно упрощает создание классов, предназначенных для хранения неизменяемых данных.
equals(), hashCode() и toString(), что делает код более чистым и менее многословным.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😁1😢1
Sealed classes позволяют разработчикам ограничивать, какие классы могут наследоваться от конкретного класса или реализовывать интерфейс.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
В Java 14 был представлен Pattern Matching для оператора instanceof. Эта возможность упрощает и делает более читабельным код, который проверяет типы объектов и затем приводит их к этим типам.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🎄1
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥1
ListUtils определен статический метод max, который находит максимальный элемент в коллекции.main мы вызываем статический метод max из интерфейса ListUtils, передавая ему список чисел.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Java 12 представила новый метод
Collectors.teeing, который позволяет объединить результаты двух различных коллекторов в один итоговый результат.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥2🔥2
Использование Optional позволяет более безопасно работать с потенциально null значениями в Java.
NullPointerException, и делает код более читаемым и надежным.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥1
Коллекции также используются для сортировки, поиска и перебора объектов, что упрощает жизнь программиста. Он предоставляет несколько базовых интерфейсов, таких как List, Set, Map и т. д., а также множество реализаций.
Традиционный способ создания коллекций и карт может показаться многим разработчикам многословным.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥1
LocalDate и DateTimeFormatter предоставляют удобные и безопасные методы для работы с датами в Java.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Этот код демонстрирует, как объединить два списка
list1 и list2 в Java, создав новый список mergedList, который содержит все элементы из обоих исходных списков. В результате выполнения кода будет напечатан объединенный список.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Если вам нужно написать Comparator для сортировки объектов по возрастанию, обычно он выглядит так:
public class ByScoreComparator implements Comparator<User> {
@Override
public int compare(User u1, User u2) {
return (int) signum(u2.getAge() - u1.getAge());
}
}Теперь это не нужно. Можно использовать ссылки на методы:
Comparator<User> comparator = Comparator
.comparingDouble(User::getAge)
.thenComparing(User::getName);
List<User> hList = ...;
hList.sort(comparator);
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4❤🔥2
Утилитарные классы предназначены не для создания объектов, а для предоставления статических методов для выполнения общих функций. Если вы пишете слишком много таких классов, пересмотрите свой подход к проектированию кода.
Однако иногда они необходимы, например, для реализации внутренних предметно-ориентированных языков (DSL) в Java. В таких случаях часто отступают от принципов ООП, чтобы сделать синтаксис короче.
• Сделайте конструктор приватным, чтобы класс нельзя было создать.
• Сделайте класс final, чтобы его нельзя было наследовать.
• Объединяйте методы в утилитарные классы по функциональности. Избегайте общих названий, таких как MvcUtils или CommonUtils.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥2