Перегрузка методов класса в Java

Перезагрузка методов класса в JavaВ сегодняшней статье речь пойдет об одном из самых интересных языковых средств Java — перегрузке методов класса. Несколько методов одного класса могут иметь одно и то же имя, отличаясь лишь набором параметров.

Перегрузка методов является одним из способов реализации принципа полиморфизма в Java.

Для того чтобы перегрузить метод, достаточно объявить его новый вариант, отлича­ющийся от уже существующих, а все остальное сделает компилятор. Нужно лишь со­блюсти одно условие: тип и/или число параметров в каждом из перегружаемых методов должны быть разными.

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

Область видимости переменной в Java

Область видимости переменной в Java

Переменная, которая объявляется внутри метода, доступна только в пределах этого метода — ее так называемая область видимости ограничена данным методом, в котором она объявлена.

Это означает, что в другом методе можно объявить переменную с точно таким же име-нем без какого-либо конфликта.

Давайте мы с вами создадим программу постепенно, где увидите что и как используется: Читать

Коллекции в Java: что это такое и зачем они нужны

Коллекции в Java: что это такое и зачем они нужныВ пакете java.util содержится библиотека коллекций(collection framework), которая предоставляет большие возможности для работы с множествами, хэш-таблицами, векторами, разными видами списков и т.д.

Коллекция — это объект, способный хранить группу одинаковых элементов. Она содержит методы для операций с однородными данными. Изначально Java поддерживала работу с коллекциями в рамках классов Vector и Hashtable, но с появлением JDK 1.2 возможности работы с коллекциями были расширены, возникло много открытых интерфейсов и различных видов классов, которые были включены в библиотеку коллекций. Читать

Что такое веб-сокеты Java

Что такое веб-сокеты JavaВеб-сокеты (WebSockets ), возможно, самое интересное нововведение в веб-техноло­гиях со времен появления «Aсинxpoннoгo JavaScript и XML»(AJAX). Они стали популярными с выходом HTML5 и поддерживаются множеством веб-фреймворков.

Однако потребовалось немало времени для создания стабильной и совместимой спе­цификации веб-сокетов.

Модель протокола передачи гипертекста (НТТР) была спроектирована задол­го до того, как стал популярен Интернет, она основывается на простых специфи­кации и дизайне. В традиционной модели НТТР клиент открывает соединение с сервером прикладной части, отправляет HTTP-запрос типа GET, POST, PUT или DELETE, а HTTP-сервер возвращает соответствующий ответ. Читать

Что такое паттерн проектирования MVC в Java?

Что такое паттерн проектирования MVC в Java?В паттерне «Модель — представление — контроллер» модель представляет данные приложения и связанную с ними бизнес-логику. Модель может быть представлена одним объектом или сложным графом связанных объектов. В приложении для плат­формы Java ЕЕ данные инкапсулируются в объектах предметной области, часто раз­вертываемых в EJB-модуле. Данные передаются в БД и из нее в объектах передачи данных (ОТО), и к ним обращаются с помощью объектов доступа к данным (ОАО).

Представление — это наглядное отображение содержащихся в модели данных.Подмножество модели содержится в отдельном представлении, таким образом, представление действует в качества фильтра для данных модели. Пользователь взаимодействует с данными модели с помощью предлагаемого представлением  наглядного отображения и обращается к бизнес логике, которая, в свою очередь, воздействует на данные модели. Читать

Реализация паттерна «Наблюдатель» в простом коде Java

Реализация паттерна "Наблюдатель" в простом коде JavaЯзык Jаvа обеспечивает готовую для использования реализацию паттерна «Наблю­датель». Разработчики легко могут реализовать этот паттерн с помощью интерфей­са Observer и расширения класса Observable.

Первое, что нам необходимо сделать — это создать класс, расширяющий класс Observable. В следующем примере когда новостное агентство оповещает несколько типов подпис­чиков в момент публикации нового материала. Подписчик может добавить соб­ственное поведение после получения обновления. Читать

Асинхронные сервлеты Java

Асинхронные сервлеты JavaДо сих пор вы видели, что можете преобразовать любой метод компонента в асин­хронный метод. Теперь вы увидите, как заставить асинхронно функционировать
сервлет. Без наличия асинхронной поддержки в сервлетах нелегко отвечать требо­ваниям асинхронности при веб-разработке.

Спецификация Servlet 3.0 (JSR 315) внесла серьезные усовершенствования в интерфейсы программирования веб-приложений (API) языка Jаvа. С появлени­ем JSR 315 спецификации сервлетов были обновлены (после длительного ожида­ния) для поддержки асинхронной модели выполнения, удобной конфигурации, подключаемости и других мелких улучшений.

Асинхронные сервлеты основываются на ключевом усовершенствовании в HyperText Traпsfer Protocol (НТТР) 1.1, сделавшем возможными постоянные со­единения. В НТТР 1.0 каждое соединение использовалось для отправки и получения только одной пары «запрос/ответ«; в то же время НТТР 1.1 позволяет веб-приложе­ниям поддерживать соединение в активном состоянии и посылать множественные запросы. Читать

Реализация паттерна «Асинхронность» в простом коде Java

Реализация паттерна "Асинхронность" в простом коде JavaЯзык Jаvа с самого начала поддерживал потоки, которые вы легко можете исполь­зовать для выполнения асинхронного кода:

Для выполнения класса Runnable инициализируйте его в потоке и вызовите метод run, обратившись к методу start() только что созданного потока. Читать

Что такое асинхронное программирование Java

Что такое асинхронное программирование JavaПаттерн программирования «Асинхронность» — особый, хорошо интегрирован­ный случай множественных потоков. Вследствие самой сущности потоков много­ поточные модели нуждаются в системах уведомления и зависят от шаблонного кода для запуска потоков.

Асинхронные обращения используются даже в одногопоточных средах, таких как NodeJS. Почти все пользовательские интерфейсы поддерживают асинхронное выполнение для удержания UI в активном, реагирующем на действия пользовате­ля состоянии.

Тем не менее асинхронное программирование может быть полезным и в других местах, помимо пользовательских интерфейсов, обычно на серверной стороне. Hи J2SE, ни J2ЕЕ не предоставляли встроенной «легкой» реализации для асинхрон­ного программирования. Читать

Где и когда использовать паттерн «Декоратор» Java

Где и когда использовать паттерн "Декоратор" JavaПаттерн «Декоратор» Java динамически добавляет объекту поведение во время выпол­нения или тогда, когда невозможно или нецелесообразно создавать производные классы (возможно, потому, что при этом создаются множественные подклассы).

Пример с пиццерией показывает, как добавить поведение к объекту пиццы во вре­мя выполнения на основе сделанного посетителем выбора.

Функциональность интерфейса программирования приложений (API) может быть расширена и усовершенствована посредством оборачивания в декоратор. Подобным образом часто декорируются потоки данных. java.iо.BufferedInputStream — хороший пример декоратора, оборачивающего низкоуровневое API и добавля­ющего функциональность буферу потока ввода. Читать