Blog Posts

Java 8 DateTime API и JPA

JPA

Интеграция Java 8 DateTime API и JPA может стать достаточно нетривиальной задачей для неподготовленного разработчика. Как известно JPA вплоть до версии 2.1 (включительно) не поддерживает новый API для работы с датой и временем, который был представлен в Java 8. Это досадное ограничение можно с легкостью обойти с использованием конвертера атрибутов, не все разработчики знают об этом очень простом и крайне эффективном инструменте. Для создания своего конвертера атрибутов достаточно реализовать интерфейс AttributeConverter и переопределить два метода convertToDatabaseColumn и convertToEntityAttribute. Рассмотрим небольшой

Читать далее

Горячие клавиши Netbeans

Горячие клавиши Netbeans

Большинство программистов пользуются интегрированными средами разработки, не используя и 10% их возможностей. К примеру, мало кто использует в своей работе горячие клавиши Горячие клавиши Netbeans значительно сокращают время разработки. Помимо горячих клавиш, в NetBeans представлены шаблоны кода. Для применения шаблона достаточно набрать аббревиатуру кода, например Ex, нажать клавишу Tab и NetBeans вставит Exception. Для того, чтобы приучить себя использовать шаблоны кода или горячие клавиши, достаточно просто начать их использовать, как бы банально это не звучало. Возьмите одно сочетание клавиш и один

Читать далее

Паттерн Фасад

Паттерн Фасад

Паттерн Фасад — структурный шаблон проектирования, позволяющий скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы. Несмотря на мудреное определение, наверное, самый простой шаблон проектирования и очень скоро вы в этом сами сможете убедиться. Реализация: давайте попробуем разработать навигационную систему автомобиля. Перед поездкой водитель будет включать GPS, загружать данные о пробках, прокладывать путь и выключать после поездки. За каждое описанное действие будет отвечать отдельный класс, кроме включения и выключения. И так, класс

Читать далее

try с ресурсами

try с ресурсами

Одним из основных нововведений, которые были включены в Java 7, стало введение нового оператора «try c ресурсами». «try c ресурсами» это оператор try, в котором объявляются один или несколько ресурсов. Ресурс — это объект, который должен быть закрыт после того, как программа закончит с ним работу. «try c ресурсами» берет всю работу по закрытию ресурсов на себя. Прежде, чем подробно его рассмотреть давайте разберемся в причинах, которые вызвали его появление. Закрытие ресурсов до Java 7. Предположим нам нужно написать метод,

Читать далее

Паттерн Адаптер

Паттерн Адаптер

Паттерн Адаптер – структурный шаблон проектирования, предназначенный для организации использования функций объекта, недоступного для модификации, через специально созданный интерфейс. Паттерн адаптер предусматривает создание класса-оболочки с требуемым интерфейсом. Является, наверное, одним из самых часто употребляемых шаблонов проектирования, который можно встретить практически в любой программе, причем применяется программистами зачастую неосознанно и позволяет эффективно устранять проблему дублирования кода в определенных ситуациях. Одну из таких ситуаций мы рассмотрим далее. Реализация: предположим, что мы работаем на заводе по производству машин в Германии и у нас

Читать далее

Функциональные интерфейсы в Java 8

Функциональные интерфейсы в Java 8

Функциональные интерфейсы в Java 8 – это интерфейсы, которые содержат в себе только один абстрактный метод. Функциональные интерфейсы имеют тесную связь с лямбда выражениями и служат как основа для применения лямбда выражений в функциональном программировании на Java. Хотелось бы напомнить один нюанс — до появления Java 8 все методы в интерфейсе неявно считались абстрактными. С выходом JDK 8 появилось такое понятие как метод по умолчанию. Метод по умолчанию – это метод объявленный в интерфейсы, поведение которого предопределено, иначе говоря, метод

Читать далее

Обобщения в Java

Обобщения в Java

На протяжении всей истории развития языка Java, он претерпевал изменения. Иногда изменения носили косметический характер, иногда это было просто исправление уязвимостей, а иногда переход на новую версию языка знаменовал поистине значительные, а в некоторых случаях и революционные изменения, одним из таких изменений стали обобщения (generics). Обобщения в Java были представлены в версии 5.0 это было результатом реализации самых первых требований к спецификации Java, которые были сформулированы еще в 1999 году. Они позволили создавать более безопасный и легче читаемый код, который

Читать далее

Паттерн Команда

Паттерн "Команда"

Паттерн Команда – поведенческий шаблон проектирования, инкапсулирует запрос в виде объекта, делая возможной организацию клиентских объектов с другими запросами, организацию очереди или регистрацию запросов, а также, поддержку отмены операций. В объектно-ориентированном программировании шаблон проектирования Команда используется для инкапсуляции всей информации, необходимой для выполнения действия или вызова события в более позднее время. Эта информация включает в себя имя метода, объект, который является владельцем метода и значения параметров метода. Реализация: на этот раз попробуем реализовать запуск двигателя автомобиля с пульта, а потом

Читать далее

Курс лекций от Mail.Ru Group

Курс лекций от Mail.Ru Group посвященный алгоритмам и структурам данных, мало математики, много полезной информации, вообщем рекомендую. Ссылка на полный курс: https://www.youtube.com/playlist?list=PLrCZzMib1e9rvDqeX2jRXrEWoTqUxrqUA

Сравнение объектов в Java

В этой статье мы рассмотрим методики сравнения объектов в Java и какие инструменты нам для этого понадобятся. Как вы сможете понять из этой статьи задача сравнения объектов не такая уж, и тривиальная и выработать единый и универсальный подход для сравнения всех объектов едва ли представляется возможным. Сравнение объектов в Java выполняется с помощью оператора сравнения == и метода equals(). Если оператор сравнения можно использовать с примитивами, то метод equals() используется только с экземплярами классов. При их использовании проверяется ссылаются ли

Читать далее

Site Footer