Создаем умные типы данных при помощи records и enums
Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".
Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔
Приятного чтения!
https://blogs.oracle.com/javamagazine/post/java-smarter-types-records-enums
Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".
Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔
Приятного чтения!
https://blogs.oracle.com/javamagazine/post/java-smarter-types-records-enums
В следующем году состоится релиз Java 20, но мы уже сегодня можем говорить о том, что нового будет в новой версии.
В предложенном сегодня видео рассмотрены:
✔️ Последовательные коллекции
✔️ Фабричные методы для коллекций
✔️ Сопоставление с образцом для оператора Switch
✔️ Паттерны для записей
✔️ Примитивные классы
и др.
Приятного просмотра!
В предложенном сегодня видео рассмотрены:
✔️ Последовательные коллекции
✔️ Фабричные методы для коллекций
✔️ Сопоставление с образцом для оператора Switch
✔️ Паттерны для записей
✔️ Примитивные классы
и др.
Приятного просмотра!
YouTube
Glimpse at Java 20: Pattern Matching, Concurrent Programming and Valhalla - Inside Java Newscast #38
Java 20 is almost round the corner. We already have a good idea of what new things will be in it. So let us visit them in this newscase: Sequenced Collections, Pattern Matching from project Amber with the support of nesting and type inference, Loom and the…
Spring: новости за прошедшую неделю
Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).
Приятного чтения! 😃
Читать статью
Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).
Приятного чтения! 😃
Читать статью
This Week in Spring - November 29th, 2022 (Spring Boot 3 has arrived)
Level up your Java code and explore what Spring can do for you.
🐕🖥 16 универсальных идей для пет-проектов вне зависимости от языка
Хотите создать что-нибудь эдакое, но вам не хватает фантазии и вдохновения? Держите 16 идей для разработки собственного проекта от «Библиотеки программиста».
🔗 Основной сайт
🔗 Зеркало
Хотите создать что-нибудь эдакое, но вам не хватает фантазии и вдохновения? Держите 16 идей для разработки собственного проекта от «Библиотеки программиста».
🔗 Основной сайт
🔗 Зеркало
💡 8 IT-профессий для тех, кто не хочет программировать
В погоне за большими и, как оказывается впоследствии, совсем не легкими деньгами некоторые люди задумываются об IT-профессиях. Но что делать, если вы не любите программировать, но хотите попасть в IT и получать достойную зарплату? Рассказываем о 8 IT-профессиях, в которых не нужно программировать.
🔗 Основной сайт
🔗 Зеркало
В погоне за большими и, как оказывается впоследствии, совсем не легкими деньгами некоторые люди задумываются об IT-профессиях. Но что делать, если вы не любите программировать, но хотите попасть в IT и получать достойную зарплату? Рассказываем о 8 IT-профессиях, в которых не нужно программировать.
🔗 Основной сайт
🔗 Зеркало
Друзья, Vlad Mihalcea подготовил небольшое видео на тему извлечения объектов при помощи JPA и Hibernate. 😃
В этом видео рассмотрено следующее:
✔️ Непосредственное извлечение объектов
✔️ JPQL запросы
✔️ SQL запросы
✔️ Запросы Criteria API
Приятного просмотра!
В этом видео рассмотрено следующее:
✔️ Непосредственное извлечение объектов
✔️ JPQL запросы
✔️ SQL запросы
✔️ Запросы Criteria API
Приятного просмотра!
YouTube
The best way to fetch entities with JPA and Hibernate
In this video, we are going to talk about fetching JPA and Hibernate entities.
First, I'm going to explain how you fetch entities directly via their entity identifier or natural identifier.
Afterward, we are going to see how we can fetch entities via JPQL…
First, I'm going to explain how you fetch entities directly via their entity identifier or natural identifier.
Afterward, we are going to see how we can fetch entities via JPQL…
🛠 Программирование без кода: немного о no-code и low-code разработке
Не нравится кодить или просто не получается, но очень хочется? Или нужно быстро собрать и протестировать MVP? Попробуй no-code и low-code программирование.
🔗 Основной сайт
🔗 Зеркало
Не нравится кодить или просто не получается, но очень хочется? Или нужно быстро собрать и протестировать MVP? Попробуй no-code и low-code программирование.
🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени, или в процессе выполнения будет выброшено исключение?
Непосредственно вызов
То же самое применимо и выброшенным в процессе
Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени, или в процессе выполнения будет выброшено исключение?
Непосредственно вызов
finalize()
происходит в отдельном потоке Finalizer
(java.lang.ref.Finalizer.FinalizerThread
), который создаётся при запуске виртуальной машины (в статической секции при загрузке класса Finalizer
). Методы finalize()
вызываются последовательно в том порядке, в котором были добавлены в список сборщиком мусора. Соответственно, если какой-то finalize()
зависнет, он подвесит поток Finalizer
, но не сборщик мусора. Это в частности означает, что объекты, не имеющие метода finalize()
, будут исправно удаляться, а вот имеющие будут добавляться в очередь, пока поток Finalizer
не освободится, не завершится приложение или не кончится память.То же самое применимо и выброшенным в процессе
finalize()
исключениям: метод runFinalizer()
у потока Finalizer
игнорирует все исключения выброшенные в момент выполнения finalize()
. Таким образом возникновение исключительной ситуации никак не скажется на работоспособности сборщика мусора.#вопросы_с_собеседований
Какие есть особенности класса String?
• Это неизменяемый (immutable) и финализированный тип данных;
• Все объекты класса String JVM хранит в пуле строк;
• Объект класса String можно получить, используя двойные кавычки;
• Можно использовать оператор + для конкатенации строк;
• Начиная с Java 7 строки можно использовать в конструкции switch.
Какие есть особенности класса String?
• Это неизменяемый (immutable) и финализированный тип данных;
• Все объекты класса String JVM хранит в пуле строк;
• Объект класса String можно получить, используя двойные кавычки;
• Можно использовать оператор + для конкатенации строк;
• Начиная с Java 7 строки можно использовать в конструкции switch.
⭐ 15 000 звезд на GitHub за год: 10 советов по развитию и продвижению продукта
В этой статье авторы популярного опенсорс-проекта Medusa (альтернатива Shopify) дадут 10 советов по развитию и продвижению продукта.
🔗 Основной сайт
🔗 Зеркало
В этой статье авторы популярного опенсорс-проекта Medusa (альтернатива Shopify) дадут 10 советов по развитию и продвижению продукта.
🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Почему char[] предпочтительнее String для хранения пароля?
С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
Почему char[] предпочтительнее String для хранения пароля?
С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
Шпаргалка: исключения в Java
Друзья, представляем вашему вниманию шпаргалку на тему исключений в Java. 🤓
Хорошей памяти!
Читать статью
Друзья, представляем вашему вниманию шпаргалку на тему исключений в Java. 🤓
Хорошей памяти!
Читать статью
Java Concept Of The Day
Java Exception Handling Cheat Sheet
Java exceptions and errors quick reference guide, Java exception handling cheat sheet for interview preparation, Java study materials...
#вопросы_с_собеседований
Как создать потокобезопасный Singleton?
• Static field
Как создать потокобезопасный Singleton?
• Static field
class Singleton {• Enum
public static final Singleton INSTANCE = new Singleton();
}
enum Singleton {• Synchronized Accessor
INSTANCE;
}
class Singleton {• Double Checked Locking & volatile
private static Singleton instance;
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
class Singleton {• On Demand Holder Idiom
private static volatile Singleton instance;
public static Singleton getInstance() {
Singleton localInstance = instance;
if (localInstance == null) {
synchronized (Singleton.class) {
localInstance = instance;
if (localInstance == null) {
instance = localInstance = new Singleton();
}
}
}
return localInstance;
}
}
public class Singleton {
public static class SingletonHolder {
public static final Singleton HOLDER_INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.HOLDER_INSTANCE;
}
}