english | блог | контакт
Fri, 05 Feb 2010 @ 11:37

Сумма прописью

java алгоритмы

Возникла задачка: преобразовать число (сумму в рублях/долларах/евро) в его словесную форму. И сделать это для русского и английского языка.

Быстрое гугление принесло пачку результатов, из которых хотелось бы выделить эти два:

http://www.freesource.info/wiki/TZ/SummaPropis%27ju& - подборка реализаций на perl/php/python/java/delphi.

http://runcore.habrahabr.ru/blog/76171/ - красивая реализация на java.

Скорее всего я плохо искал, но "универсальной реализации для разных языков" я не нашёл. Поэтому, после некоторого числа мозговых операций, было решено взять за основу имеющееся (вариант от runcore) и преобразовать его для своих нужд.
читать дальше

Thu, 26 Nov 2009 @ 14:26

Интересная реализация equals

java

В одном проекте нашёл интересный equals и минут 15 не понимал как и почему он работает:

Object obj = new Object() {
    private int id = _id;
    public boolean equals(Object obj) {
        return obj.equals(id);
    }
};

читать дальше

Fri, 23 Oct 2009 @ 17:28

wicket: авторизация, wasp, swarm, spring и acegi

acegi java spring wicket авторизация

В wicket 1.3 была возможность реализовывать авторизацию клиентов с помощью модулей wasp/swarm. С приходом версии 1.4, насколько я понял, модули wicket-security из wicket-stuff были молча забыты и вместо них используется acegi.

Spring Security and Wicket-auth-roles - пример использования спринговой авторизации

Пример простейшей конфигурации acegi с использованием неймспейсов.

Кстати, даже не зная как делать "правильную связку wicket-acegi", имя уже авторизованного посредством spring-security пользователя можно получить через

String userName = SecurityContextHolder.getContext().getAuthentication().getName();

Wed, 09 Sep 2009 @ 19:52

Массивы в Java - тоже объекты

java

Двигаюсь к SCJP, прохожу всякие-разные бесплатные тесты, раскапываю банальные мелочи. Вроде знал, что массив есть объект, но синтаксисом не интересовался. Под катом несколько примеров, скорее, для себя.
читать дальше

Thu, 27 Aug 2009 @ 13:28

Замещение методов и тип возвращаемого значения

java полиморфизм

Раньше был уверен, что перегруженные/замещённые методы должны возвращать значение того же типа. Сегодня узнал, что в Java SE 5 можно вернуть производный класс:

class A { }
class B extends A { }
class FA {
    public A test() {
        return null;
    }
}
class FB extends FA {
    @Override
    public B test() {
        return null;
    }
    public B test(int i) {
        return null;
    }
}

Далее чуть больше строк для проверки.
читать дальше

Fri, 21 Aug 2009 @ 09:49

Исключения (exceptions) в Java

exception java

Некоторые вещи иногда работают не так, как подсказывает интуиция. Это утверждение можно отнести к обработке исключений в Java. Далее - ситуации и примеры кода, которые отражают имеющиеся нюансы.
читать дальше

Wed, 12 Aug 2009 @ 08:01

Runtime vs. ProcessBuilder

java странное

Я понимаю, что выделение некоторого функционала в отдельный класс - дело полезное.
Но всё равно умиляют перлы вроде:

Notice that the following two lines in DoRuntime:

  Runtime runtime = Runtime.getRuntime();
  Process process = runtime.exec(command);


were changed to the following line in DoProcessBuilder:

  Process process = new ProcessBuilder(command).start();

А написать

  Process process = Runtime.getRuntime().exec(command);

наверное религия не позволила

© http://java.sun.com/developer/JDCTechTips/2005/tt0727.html#2

Mon, 10 Aug 2009 @ 09:37

Функция Аккермана

c++ java производительность сферические кони

В продолжение темы измерений, было предложено замерить производительность на вычислении значений функции Аккермана. Вот, попробовал варианты на Java и C++.
читать дальше

Sat, 08 Aug 2009 @ 07:53

Java vs. C++ vs. PHP vs. Python. Тест#1

c++ java php python производительность

Эта статья не актуальна, обновлённая версия размещена по адресу http://habrahabr.ru/blogs/programming/66562/.

После прочтения очередной статьи захотелось сравнить производительность Java и C++. И начать решил с простых циклов и математических операций. После написания тестов на java и c++ подумал и перевёл их на php и python.

Итак, пару слов о тесте: алгоритм абсолютно синтетический: долгий цикл (двухуровневый) и в нём вычисление математического выражения.
Таким образом оценивается вычислительная производительность самого языка (интерпретатора или скомпилированного кода), никаких привязок к качеству реализации тех или иных библиотек, никаких внешних сервисов, никаких системозависимых операций (диск, сеть, графика).

Заранее замечу:
1) Мне нравится ява и я честно предполагал, что результаты будут лучше.
2) Я предполагал, что php сольёт, но не предполагал, что c++ будет так быстр при включении оптимизации.
3) Предполагал, что Python будет сопоставим с PHP, но ошибся. Странно, ведь оба языка скриптовые.
4) Я достаточно уважительно отношусь к PHP (на нём я пишу уже много лет, для быстрой разработки под web он отлично подходит) и Python. Каждый язык имеет свою нишу и своих поклонников.
читать дальше

Tue, 04 Aug 2009 @ 17:17

Генерики, списки аргументов переменной длины и производительность

java

Смотрел на apache.commons, интересовался, так сказать, для общего развития. В commons.math удивился, почему для подсчёта среднего арифметического написана толпа типизированных функций с двумя/тремя параметрами, ведь есть же генерики и возможно написание функций с переменным числом аргументов.
читать дальше

Страницы: 1 2 3 4