14
March

Velocity для создания библиотек тэгов (Taglib)

Posted in: Java open-source проекты, Java technologies, J2SE | 5 Comments

Данная статья является продолжением статьи о Velocity Framework.
Taglib – один из подпроектов Jakarta. Это репозиторий готовых библиотек тэгов (custom tags). Тэги в последствии могут быть использованы при создании JSP-страниц. Преимущество использования таких тегов - отделение отображения веб-приложения от его логики.
В этой статье На конкретном примере я покажу как создавать тэги используя Velocity. Конечно их можно создавать и без этого движка, но при использовании Velocity достигается небывалая гибкость в поддержке тэгов.
Для начала придумаем задание. Пусть нужно создать тэг, отображающий таблицу с именем пользователя и адресом его сайта. В качестве параметра тэга будет выступать необязательный атрибут count для оганичения кол-ва пользователей при выводе. Итак, начнем.
(more…)

14
March

Анонимные классы в Java

Posted in: Java technologies, J2SE | 3 Comments

English version of this article you can find here.
Практически во всех статьях об inner классах допущен ряд ошибок по поводу анонимных классов:

  • они не имеют имени;
  • они не могут быть объявлены статическими;
  • они могут быть созданы только один раз при декларировании.

Это все неправда!
Допустим у нас есть следующий код:
(more…)

12
March

Шифраторы байт-кода (Java Obfuscators)

Posted in: Java technologies, J2SE, Полезные программы | 1 Comment

Код Java-программ преобразуется в байт-код после компиляции. Естественно возможен и обратный процесс. Существует огромное количество декомпиляторов, которые могут извлечь исходный код приложения в довольно хорошем качестве. Все это ставит под угрозу интеллектуальную собственность автора программы (алгоритмов).
Шифратор (obfuscator) - это программа, которая в большей или меньшей мере изменяет байт-код (или исходный код) Java приложения.
(more…)

7
March

Java-игра “Пятнашки” (Swing GUI game)

Posted in: Java GUI, Swing, AWT, SWT, Java technologies, J2SE | 11 Comments

Дело было вечером. Делать было нечего.
Вот и решил написать простенькую игрушку на Java. Первое, что пришло на ум, - знаменитая игра “пятнашки”.
Дружественный интерфейс :) решено было создать с использованием Java Swing.
(more…)

3
March

Одновременный запуск параллельных потоков (Java Threads)

Posted in: Java technologies, J2SE | 3 Comments

Потоки в Java (Threads) - не самая легкая для понимания вещь. Но знать, как они работают и взаимодействуют, должен каждый Java-программист.
В этой статье я хочу на примере показать, как можно реализовать практически одновременный запуск нескольких потоков.
Надеюсь, данная статья прольет свет на некоторые ваши вопросы по поводу многопоточности.
(more…)

28
February

Singleton Design Pattern in Java

Posted in: Java technologies (translated), Паттерны проектирования | No Comments

The Russian version of this article can be found here.
Design patterns are descriptions of problems and possible ways of their solving during object-oriented design (OOD).
Maybe the most popular design pattern is Singleton Pattern. It is used to guarantee that there will be only one instance of particular object in the application. The realization of this pattern can be useful while creating Connection Pool, Factory, Configuration Manager, etc.
In this article you will find basic description of this pattern and the example of its practical usage (in Java).
Look through the following code:
(more…)

25
February

Описание Velocity Framework

Posted in: Java open-source проекты, Java technologies, J2SE | 2 Comments

Velocity - один из множества подпроектов Jakarta. Это своеобразный движок для обработки шаблонов. Velocity framework позволяет дизайнерам веб-страниц обращаться к методам Java классов. С помощью этого движка можно генерировать веб-страницы, SQL-запросы, XML-документы и т.д.
Вы наверное сразу вспомнили технологию XSL. Да, это тоже обработчик шаблонов, но XSL-преобразования удобнее выполнять при работе с XML-документом, а Velocity помогает при непосредственной работе с Java-объектами.
Перечислю некоторые преимущества движка:

  • язык шаблонов VTL прост в изучении (в чем вы убедитесь дальше);
  • позволяет веб-дизайнеру и программисту работать раздельно;
  • отделяет Java-код от кода веб-страниц;
  • удобен при создании библиотек тэгов для JSP;
  • может послужить альтернативой для JSP или PHP.

Перейдем к описанию языковых конструкций VTL (Velocity Template Language).
(more…)

22
February

Паттерн Memento (Память)

Posted in: Паттерны проектирования | 2 Comments

Поведенческий паттерн проектирования (behavioral pattern) Память нужен для хранения определенного состояния объекта. При сохранении не должна нарушаться парадигма ООП инкапсуляция. С другой стороны, должна присутствовать возможность возврата к предыдущему состоянию.
Ну, довольно сухих слов. Перейдем к практическому примеру паттерна Memento на Java.
(more…)

17
February

Java-related и другие Brainbench тесты

Posted in: Разное (uncategorized), Ваш досуг. Полезные советы | 2 Comments

Если говорить о сертификатах, то для Java-программиста самым существенным будет Sun certification.
Но попробовать свои силы можно и на Brainbench (http://brainbench.com). На данный момент на этом сайте есть несколько бесплатных тестов, которые будет интересно пройти всем, кто так или иначе связан с Java-программированием.
(more…)

16
February

Standard Widget Toolkit (SWT Eclipse GUI)

Posted in: Java GUI, Swing, AWT, SWT, Java technologies, J2SE | 5 Comments

Познакомился еще с одной Java-библиотекой для создания GUI. Это Standard Widget Toolkit (SWT). Приложения SWT разрабатываются с использованием Eclipse workbench.
SWT приложения используют ОС-зависимый код (native), поэтому они быстрее Java GUI написанных на AWT и тем более на Swing.
(more…)