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
Java предоставляет множество возможностей для оптимизации производительности приложений.
java -XX:+UseG1GC G1GCExample
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Теперь более трудное задание. Не читайте решение. Посмотрите сможете ли вы найти
ответ самостоятельно. Когда я запущу следующую программу:
for (int i = 0; i < 10; i++) {
System.out.println((Integer) i);
}Иногда я получаю следующий вывод:
92
221
45
48
236
183
39
193
33
84
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😱3❤🔥2
Datafaker создает фиктивные данные для ваших программ JVM за считанные минуты, используя широкий спектр из более чем 100 поставщиков данных.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5❤🔥1
Несмотря на критику функции клонирования объектов в Java, если вам нужно реализовать метод
clone(), вот несколько лучших практик для упрощения задачи:public Course clone() {
Course c = null;
try {
c = (Course)super.clone();
} catch (CloneNotSupportedException e) {} // Не произойдет
return c;
}clone() не вызовет CloneNotSupportedException, если класс реализует интерфейс Cloneable. Возврат подкласса называется ковариантным переопределением методов и доступен с Java 5, что позволяет избежать приведения типа на стороне клиента:Course javaBeginners = new Course("Java", 100, 10);
Course clone = javaBeginners.clone();Ранее, например, с классом Date, нужно было явно приводить результат метода
clone():Date d = new Date();
Date clone = (Date) d.clone();
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥1