March
Velocity для создания библиотек тэгов (Taglib)
Posted in: Java open-source проекты, Java technologies, J2SE | 5 Comments
Данная статья является продолжением статьи о Velocity Framework.
Taglib – один из подпроектов Jakarta. Это репозиторий готовых библиотек тэгов (custom tags). Тэги в последствии могут быть использованы при создании JSP-страниц. Преимущество использования таких тегов - отделение отображения веб-приложения от его логики.
В этой статье На конкретном примере я покажу как создавать тэги используя Velocity. Конечно их можно создавать и без этого движка, но при использовании Velocity достигается небывалая гибкость в поддержке тэгов.
Для начала придумаем задание. Пусть нужно создать тэг, отображающий таблицу с именем пользователя и адресом его сайта. В качестве параметра тэга будет выступать необязательный атрибут count для оганичения кол-ва пользователей при выводе. Итак, начнем.
(more…)
March
Анонимные классы в Java
Posted in: Java technologies, J2SE | 3 Comments
English version of this article you can find here.
Практически во всех статьях об inner классах допущен ряд ошибок по поводу анонимных классов:
- они не имеют имени;
- они не могут быть объявлены статическими;
- они могут быть созданы только один раз при декларировании.
Это все неправда!
Допустим у нас есть следующий код:
(more…)
March
Шифраторы байт-кода (Java Obfuscators)
Posted in: Java technologies, J2SE, Полезные программы | 1 Comment
Код Java-программ преобразуется в байт-код после компиляции. Естественно возможен и обратный процесс. Существует огромное количество декомпиляторов, которые могут извлечь исходный код приложения в довольно хорошем качестве. Все это ставит под угрозу интеллектуальную собственность автора программы (алгоритмов).
Шифратор (obfuscator) - это программа, которая в большей или меньшей мере изменяет байт-код (или исходный код) Java приложения.
(more…)
March
Java-игра “Пятнашки” (Swing GUI game)
Posted in: Java GUI, Swing, AWT, SWT, Java technologies, J2SE | 11 Comments
Дело было вечером. Делать было нечего.
Вот и решил написать простенькую игрушку на Java. Первое, что пришло на ум, - знаменитая игра “пятнашки”.
Дружественный интерфейс
решено было создать с использованием Java Swing.
(more…)
March
Одновременный запуск параллельных потоков (Java Threads)
Posted in: Java technologies, J2SE | 3 Comments
Потоки в Java (Threads) - не самая легкая для понимания вещь. Но знать, как они работают и взаимодействуют, должен каждый Java-программист.
В этой статье я хочу на примере показать, как можно реализовать практически одновременный запуск нескольких потоков.
Надеюсь, данная статья прольет свет на некоторые ваши вопросы по поводу многопоточности.
(more…)
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…)
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…)
February
Паттерн Memento (Память)
Posted in: Паттерны проектирования | 2 Comments
Поведенческий паттерн проектирования (behavioral pattern) Память нужен для хранения определенного состояния объекта. При сохранении не должна нарушаться парадигма ООП инкапсуляция. С другой стороны, должна присутствовать возможность возврата к предыдущему состоянию.
Ну, довольно сухих слов. Перейдем к практическому примеру паттерна Memento на Java.
(more…)
February
Java-related и другие Brainbench тесты
Posted in: Разное (uncategorized), Ваш досуг. Полезные советы | 2 Comments
Если говорить о сертификатах, то для Java-программиста самым существенным будет Sun certification.
Но попробовать свои силы можно и на Brainbench (http://brainbench.com). На данный момент на этом сайте есть несколько бесплатных тестов, которые будет интересно пройти всем, кто так или иначе связан с Java-программированием.
(more…)
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…)