Java приложения, Java-программы, Java технологии и секреты, J2SE, J2EE, проект Jakarta
October
2006
Как говорится: случайность - частный случай закономерности. Поэтому наверняка вы используете случайные числа в некоторых своих разработках.
В Java есть класс для работы со случайными (точнее псевдослучайными) числами - java.util.Random. Тем не менее, некоторые люди пользуются им не совсем так, как надо.
Пример:
(more…)
October
2006
Игра “Меморина” (Java Swing GUI Game) и проблема с ImageIcon
Posted in: Java GUI, Swing, AWT, SWT, Java technologies, J2SE | 7 Comments
Ну прямо гейм-девелопер какой-то.
Попросили меня написать маленькую игру�?ечку с использованием графической библиотеки Java Swing. �?гра всем знакома и называется “Меморина”.
Думаю, заказчик не будет сильно зол за то, что я выложу игру на всеобщее обозрение…
Еще столкнулся с такой проблемой: при загрузке картинок из jar-файла возникает исключительная ситуация ImageFormatException, хотя при запуске из IDE все проходит без о�?ибок.
(more…)
September
2006
Если MP3-плеер не понимает русский язык (mp3-player java-utility)
Posted in: Java technologies, J2SE, Полезные программы | 19 Comments
MP3 плеер вещь хоро?ая и полезная…
К сожалению, иногда он “расставляет все точки над i”, равно как и над e, и над о, и так далее, в названиях песен. А все потому, что не понимает русский (и/или украинский) язык.
Хоро?о, если на сайте производителя есть множество софта, в частности для перепро?ивки и загрузки ?рифтов. А если нет?
Тогда вы попали туда, куда нужно.
(more…)
June
2006
Регулярные выражения (Regular Expressions) позволяют сопоставлять текст с указанным ?аблоном, а также выполнять замену текста. Эти операции осуществляются с помощью универсальных символов, которые специальным образом интерпретируются.
Регулярные выражения используются в боль?ом количестве языков программирования.
В Java тоже есть пакет, который позволяет работать с ними - java.util.regex.
(more…)
May
2006
Тестирование и внутренние классы (inner class)
Posted in: Тестирование кода, Java technologies, J2SE | 5 Comments
При тестировании отдельных классов Java-приложения, многие используют метод main или создают дополнительный тестовый класс. Отдельный класс луч?е использовать при интегральных тестах, а метод main после выпуска новой версии класса/пакета чаще всего нужно удалять.
В этой статье я вновь возвращаюсь к внутренним классам (inner class) для ре?ения описанной вы?е проблемы. На этот раз мы рассмотрим статические внутренние классы.
Статический внутренний класс описывается с модификатором static внутри декларации другого (обрамляющего) класса. Вот пример такого класса:
(more…)
April
2006
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
2006
Алгоритм Quick Sort является одним из самых быстрых алгоритмов сортировки. Его среднее время выполнения - O(n log n). Quick Sort реализуется с помощью рекурсии.
В этой статье представлен демонстрационный пример алгоритма быстрой сортировки на Java.
(more…)
March
2006
Velocity для создания библиотек тэгов (Taglib)
Posted in: Java open-source проекты, Java technologies, J2SE | 5 Comments
Данная статья является продолжением статьи о Velocity Framework.
Taglib – один из подпроектов Jakarta. Это репозиторий готовых библиотек тэгов (custom tags). Тэги в последствии могут быть использованы при создании JSP-страниц. Преимущество использования таких тегов - отделение отображения веб-приложения от его логики.
В этой статье На конкретном примере я покажу как создавать тэги используя Velocity. Конечно их можно создавать и без этого движка, но при использовании Velocity достигается небывалая гибкость в поддержке тэгов.
Для начала придумаем задание. Пусть нужно создать тэг, отображающий таблицу с именем пользователя и адресом его сайта. В качестве параметра тэга будет выступать необязательный атрибут count для оганичения кол-ва пользователей при выводе. ?так, начнем.
(more…)
March
2006
English version of this article you can find here.
Практически во всех статьях об inner классах допущен ряд о?ибок по поводу анонимных классов:
- они не имеют имени;
- они не могут быть объявлены статическими;
- они могут быть созданы только один раз при декларировании.
Это все неправда!
Допустим у нас есть следующий код:
(more…)
March
2006
Шифраторы байт-кода (Java Obfuscators)
Posted in: Java technologies, J2SE, Полезные программы | 1 Comment
Код Java-программ преобразуется в байт-код после компиляции. Естественно возможен и обратный процесс. Существует огромное количество декомпиляторов, которые могут извлечь исходный код приложения в довольно хоро?ем качестве. Все это ставит под угрозу интеллектуальную собственность автора программы (алгоритмов).
Шифратор (obfuscator) - это программа, которая в боль?ей или мень?ей мере изменяет байт-код (или исходный код) Java приложения.
(more…)