Java приложения, Java-программы, Java технологии и секреты, J2SE, J2EE, проект Jakarta
June
Регулярные выражения (Regular Expressions) позволяют сопоставлять текст с указанным шаблоном, а также выполнять замену текста. Эти операции осуществляются с помощью универсальных символов, которые специальным образом интерпретируются.
Регулярные выражения используются в большом количестве языков программирования.
В Java тоже есть пакет, который позволяет работать с ними - java.util.regex.
(more…)
May
Тестирование и внутренние классы (inner class)
Posted in: Тестирование кода, Java technologies, J2SE | No Comments
При тестировании отдельных классов Java-приложения, многие используют метод main или создают дополнительный тестовый класс. Отдельный класс лучше использовать при интегральных тестах, а метод main после выпуска новой версии класса/пакета чаще всего нужно удалять.
В этой статье я вновь возвращаюсь к внутренним классам (inner class) для решения описанной выше проблемы. На этот раз мы рассмотрим статические внутренние классы.
Статический внутренний класс описывается с модификатором static внутри декларации другого (обрамляющего) класса. Вот пример такого класса:
(more…)
April
Anonymous inner classes in Java
Posted in: Java technologies (translated), Java technologies, J2SE | No Comments
The Russian version of this article can be found here.
There are a lot of articles through Internet which have mistakes regarding anonymous inner classes in Java. Anonymous inner class:
- has no name;
- can’t be declared as static;
- can be instantiated only once.
Let me show you the truth.
Consider the following code:
(more…)
March
Алгоритм Quick Sort является одним из самых быстрых алгоритмов сортировки. Его среднее время выполнения - O(n log n). Quick Sort реализуется с помощью рекурсии.
В этой статье представлен демонстрационный пример алгоритма быстрой сортировки на Java.
(more…)
March
Velocity для создания библиотек тэгов (Taglib)
Posted in: Java open-source проекты, Java technologies, J2SE | 4 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
Описание 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…)