Please open Telegram to view this post
VIEW IN TELEGRAM
😁29
В Java 21 появилась новая мощная возможность — Pattern Matching for switch. Теперь можно легко проверять и разбирать объекты без каста вручную!
public class PatternMatchingExample {
public static void main(String[] args) {
Object obj = "Hello, Java 21!";
switch (obj) {
case String s when s.length() > 10 ->
System.out.println("Строка длинная: " + s);
case String s ->
System.out.println("Короткая строка: " + s);
case Integer i ->
System.out.println("Число: " + i);
default ->
System.out.println("Неизвестный тип");
}
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
⚡6👍5🔥3🤣1
☕️ Аннотации и рефлексия в Java
Аннотации помогают добавлять метаданные к классам, методам и полям, а рефлексия позволяет анализировать и изменять код во время выполнения. Эти инструменты мощные, но могут вызывать проблемы с производительностью и безопасностью.
В статье разбираем, как работают аннотации и рефлексия, где они применяются и с какими подводными камнями можно столкнуться.
🔗 Читайте и наслаждайтесь
➡️ Easy Java | #статья
Аннотации помогают добавлять метаданные к классам, методам и полям, а рефлексия позволяет анализировать и изменять код во время выполнения. Эти инструменты мощные, но могут вызывать проблемы с производительностью и безопасностью.
В статье разбираем, как работают аннотации и рефлексия, где они применяются и с какими подводными камнями можно столкнуться.
🔗 Читайте и наслаждайтесь
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩3😇1
This media is not supported in your browser
VIEW IN TELEGRAM
В этом видеоролике автор подробно объясняет, что такое Java, рассказывает об истории языка, его особенностях и применении. Если хочешь разобраться, зачем нужен этот язык и почему он так популярен, это видео будет полезным.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Singleton — это шаблон проектирования, ограничивающий создание экземпляров класса одним объектом. Рассмотрим три разных подхода к его реализации.
Создаёт объект только при первом вызове.
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {} // Закрытый конструктор
public static LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}Оптимизированная версия для многопоточной среды.
public class ThreadSafeSingleton {
private static volatile ThreadSafeSingleton instance;
private ThreadSafeSingleton() {}
public static ThreadSafeSingleton getInstance() {
if (instance == null) {
synchronized (ThreadSafeSingleton.class) {
if (instance == null) {
instance = new ThreadSafeSingleton();
}
}
}
return instance;
}
}synchronized-метода Рекомендуется в современной Java.
public enum EnumSingleton {
INSTANCE;
public void someMethod() {
System.out.println("Enum Singleton!");
}
}LazySingleton удобен, но не подходит для многопоточки. ThreadSafeSingleton решает проблему двойной проверкой, но сложнее. EnumSingleton — самый надёжный способ, рекомендованный Joshua Bloch. Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣23
Что это такое?
В Java паттерн Singleton (Одиночка) используется для того, чтобы гарантировать существование только одного экземпляра класса и предоставить к нему глобальную точку доступа. Один из лучших способов реализации паттерна Singleton в современной Java — использовать enum. Это гарантирует, что экземпляр будет создан только один раз, а также позволяет защититься от проблем многозадачности (multi-threading) и сериализации.
Почему это лучший способ?
1. Гарантированная защита от сериализации: Enum типы в Java автоматически обеспечивают защиту от повторной сериализации, что означает, что даже если вы сериализуете и десериализуете объект, он всегда будет одним и тем же экземпляром.
2. Легкость использования: Просто создайте enum с одним элементом, и он будет работать как Singleton.
3. Простота кода: Реализация паттерна через enum гораздо проще и понятнее, чем традиционные способы через класс с приватным конструктором и методами для получения экземпляра.
4. Защита от многопоточности: Enum в Java гарантированно потокобезопасен.
Как использовать Singleton через enum?
Пример кода:
Объяснение:
Все поля и методы класса могут быть такими же, как в обычном классе.
Для доступа к экземпляру используйте
Пример использования:
Почему это удобно?
1. Безопасность при многозадачности: В многозадачной среде enum-тип автоматически позаботится о том, чтобы не создать несколько экземпляров.
2. Никаких проблем с рефлексией: При обычной реализации через класс можно создать новые экземпляры с помощью рефлексии, что нарушает принцип Singleton. В случае enum этого не произойдет.
3. Простота тестирования и расширяемости: Такой подход легко тестировать и можно добавлять новые функции без изменения структуры самого паттерна.
Когда использовать?
Использование enum для реализации Singleton рекомендуется, когда вам нужно:
— Обеспечить, чтобы экземпляр был создан только один раз и не был доступен для повторного создания.
— Потребность в потокобезопасности и защите от возможных ошибок сериализации.
— Желание использовать компактное и понятное решение без дополнительных сложностей.
📍 Теги: #Java #Singleton #Паттерны
В Java паттерн Singleton (Одиночка) используется для того, чтобы гарантировать существование только одного экземпляра класса и предоставить к нему глобальную точку доступа. Один из лучших способов реализации паттерна Singleton в современной Java — использовать enum. Это гарантирует, что экземпляр будет создан только один раз, а также позволяет защититься от проблем многозадачности (multi-threading) и сериализации.
Почему это лучший способ?
1. Гарантированная защита от сериализации: Enum типы в Java автоматически обеспечивают защиту от повторной сериализации, что означает, что даже если вы сериализуете и десериализуете объект, он всегда будет одним и тем же экземпляром.
2. Легкость использования: Просто создайте enum с одним элементом, и он будет работать как Singleton.
3. Простота кода: Реализация паттерна через enum гораздо проще и понятнее, чем традиционные способы через класс с приватным конструктором и методами для получения экземпляра.
4. Защита от многопоточности: Enum в Java гарантированно потокобезопасен.
Как использовать Singleton через enum?
Пример кода:
public enum Singleton {
INSTANCE;
// Пример поля
private int value = 42;
// Пример метода
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}Объяснение:
INSTANCE — это единственный экземпляр вашего класса. Используется стандартный механизм enum для создания этого экземпляра.Все поля и методы класса могут быть такими же, как в обычном классе.
Для доступа к экземпляру используйте
Singleton.INSTANCEПример использования:
public class Main {
public static void main(String[] args) {
// Получение доступа к единственному экземпляру
Singleton singleton = Singleton.INSTANCE;
// Использование метода экземпляра
System.out.println(singleton.getValue()); // Выводит 42
// Изменение значения
singleton.setValue(100);
System.out.println(singleton.getValue()); // Выводит 100
}
}Почему это удобно?
1. Безопасность при многозадачности: В многозадачной среде enum-тип автоматически позаботится о том, чтобы не создать несколько экземпляров.
2. Никаких проблем с рефлексией: При обычной реализации через класс можно создать новые экземпляры с помощью рефлексии, что нарушает принцип Singleton. В случае enum этого не произойдет.
3. Простота тестирования и расширяемости: Такой подход легко тестировать и можно добавлять новые функции без изменения структуры самого паттерна.
Когда использовать?
Использование enum для реализации Singleton рекомендуется, когда вам нужно:
— Обеспечить, чтобы экземпляр был создан только один раз и не был доступен для повторного создания.
— Потребность в потокобезопасности и защите от возможных ошибок сериализации.
— Желание использовать компактное и понятное решение без дополнительных сложностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4❤3
Из этого курса вы узнаете, что собой представляет API, как работает и зачем нужен. Рассмотрим примеры использования, способы вызова и тенденции развития.
Курс предназначен для всех, кто хочет понять что такое API и в дальнейшем использовать его в работе.
Вас ожидают: 11 уроков, 10 тестов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Media is too big
VIEW IN TELEGRAM
В этом видеоролике автор подробно объясняет, зачем Java нужна бизнесу и почему она до сих пор остается одним из ведущих языков программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣25
Многие новички в Java совершают ошибку, забывая, что equals() и hashCode() должны быть согласованы. Это критически важно, если объект используется в HashSet, HashMap и других коллекциях.
class User {
private String name;
public User(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
User user = (User) obj;
return name.equals(user.name);
}
}import java.util.Objects;
class User {
private String name;
public User(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
User user = (User) obj;
return Objects.equals(name, user.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
А
Если нет поставьте 👍
Если да поставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍10❤1
Тут объясняют, как серверный код на Python и Java может переживать сбои: повторы, таймауты, graceful degradation и прочие лайфхаки для стабильной жизни.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3