[Объект] Глава 2. Объектно-ориентированное программирование В этой главе объясняется, как реализовать систему бронирования кинотеатров с использованием объектно-ориентированного программирования. Определяются объекты, такие как фильм, показ, человек, политика скидок, условия скидок и т. д., и предлагается способ р
[Объект] Глава 1. Объекты, проектирование Изменяемость и коммуникация важны в разработке программного обеспечения, и для этого необходимо применять объектно-ориентированное проектирование. Объект - это автономное существо, которое самостоятельно управляет своими данными, а хорошая конструкция зак
[Эффективная Java] Элемент 6. Избегайте ненужного создания объектов Руководство по минимизации ненужного создания объектов в Java. Для неизменяемых объектов, таких как String, Boolean, рекомендуется использовать литералы, а для регулярных выражений – кэшировать экземпляры Pattern. Кроме того, автоупаковка может привести к
[Эффективный Java] Пункт 5. Используйте инъекцию зависимостей, а не явно указывайте ресурсы Если класс зависит от внешних ресурсов, не используйте синглтоны и статические утилитарные классы. Инъекция зависимостей позволяет улучшить гибкость, повторное использование и тестируемость класса, а использование паттерна фабричного метода обеспечивает б
[Эффективный Java] Элемент 4. Используйте частный конструктор, чтобы предотвратить создание экземпляра Для утилитарных классов, которые содержат только статические методы и поля, рекомендуется сделать конструктор частным, чтобы предотвратить создание экземпляра. Это предотвращает случайное создание экземпляра пользователем и делает наследование невозможным
[Эффективный Java] Элемент 3. Гарантируйте единственность с помощью частного конструктора или перечисления В этой статье рассматриваются три способа реализации паттерна Singleton в Java (public static-член, статический фабричный метод, перечисление), а также преимущества и недостатки каждого из них, а также важные моменты при сериализации. В качестве наиболее
[Эффективный Java] Пункт 2. Используйте билдер, если конструктор имеет много параметров При создании объектов с большим количеством параметров использование паттерна билдера может сделать код более чистым и удобочитаемым. Вы создаете объект билдера с обязательными параметрами, используете методы-сеттеры для установки необязательных параметро
[Эффективная Java] Пункт 1. Рассмотрите статические фабричные методы вместо конструкторов Статические фабричные методы удобны тем, что могут контролировать создание объектов с помощью имен. Они могут возвращать существующие экземпляры, а не создавать новые каждый раз, что эффективно. Они имеют недостаток в том, что затрудняют наследование, но
Что такое Java Collections Framework (JCF)? - Определение и характеристики JCF (JAVA) Java Collections Framework (JCF) - это набор классов Java, предоставляющий стандартизированный способ эффективной обработки больших объемов данных. JCF реализует структуры хранения данных и алгоритмы в виде классов, повышая переиспользование кода, произво
[Spring] Что такое Filter, Interceptor, Argument Resolver? Узнайте больше о концепциях и различиях Filter, Interceptor, Argument Resolver в веб-приложениях Spring. Изучите способы реализации каждой функции, время использования, преимущества и недостатки, а также получите понимание с помощью реальных примеров кода
[Spring] Использование @Async Узнайте, как легко реализовать асинхронную обработку Java с помощью Spring @Async. С помощью аннотации @Async вы можете преобразовать синхронные методы в асинхронные и повысить эффективность за счет настройки пула потоков. В статье также рассматривается и
[Java] Synchronized Collection vs Concurrent Collection В этой статье мы сравним и проанализируем различные подходы к решению проблем синхронизации при использовании коллекций в многопоточной среде в Java. Мы рассмотрим особенности и разницу в производительности синхронизированных коллекций, таких как Vector,
equals() vs hashCode() В Java `equals()` и `hashCode()` - это важные методы, которые используются для сравнения равенства и идентичности объектов. `equals()` сравнивает, совпадает ли содержимое объектов, в то время как `hashCode()` проверяет, идентичны ли объекты. В хеш-структу
[Java] Концепция отражения и способы использования Отражение — это API, который позволяет получать доступ к информации о классах во время выполнения программы Java и манипулировать этими классами. Это позволяет создавать экземпляры классов, обращаться к полям и методам во время выполнения, но следует исп
[DB] Настройка кеша Практическое руководство по кэшированию данных, которые часто читаются, но редко записываются. Показываем, как использовать APM, такие как DataDog, для анализа истории вызовов запросов RDB и выбора таблиц для кэширования, где количество запросов на выборк