-
GWT. Обработка серверных исключений на клиенте.
В целом обработка исключений при работе в GWT через RPC довольно детально описана в разделе документации DevGuideHandlingExceptions Важный момент на который следуют обратить внимание – throws для метода. Например, вот Ваш интерфейс: public interface MyService extends RemoteService { public String myMethod(String s); } Допустим Вы сделали класс MyException который наследуется от RuntimeException. Например, это…
-
Практикум по программированию на Java и Scala
Начинается семестровый курс по выбору МФТИ “Практикум по программированию на Java и Scala”. Занятия будут проходить по понедельникам в 408 аудитории Лабораторного корпуса МФТИ. Начало занятий в 17:05.
-
Самый лучший Singleton
Из всех существующих на момент написания этого поста реализаций шаблона Singleton (одиночка) мне больше всего нравится эта: public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() {} /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static…
-
Звездочка (*) в шестёрке и хитрые bat-файлы
Запуск java-программы из командной строки. Представим такую ситуацию… В результате вашей работы в качестве java программиста у вас получился один JAR-файл (для простоты назовем его mytools-1.0-SNAPSHOT.jar). Кроме него вы планируете использовать более десятка других jar-файлов. Ваша программа должна запускаться из командной строки, а не из супер-пупер IDE которую вы обычно используете в работе. Например Вашу программу…
-
Camel Case
Camel Case, он же — Верблюжий Регистр, он же — Горбатый Стиль. Определение из википедии — “стиль написания составных слов, при котором несколько слов пишутся слитно без пробелов, при этом каждое слово пишется с заглавной буквы. Стиль получил название CamelCase, поскольку заглавные буквы внутри слова напоминают горбы верблюда” Такой стиль используется в языке программирования Java.…
-
Hibernate. Update. Популярные грабли
Сейчас многие любят реализовывать Data Access Object (DAO) на базе Hibernate. Хотелось уделить особое внимание работе с объектами в различных состояниях. Пример из документации : DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) ); cat.setName(“PK”); sess.flush(); // changes to cat are automatically detected and persisted Некоторые думают, что нужно делать так: DomesticCat cat = (DomesticCat)…
-
Сортировка за O(N)-время
Случайно наткнулся на статью на java.dzone.com – Fast O(n) Integer Sorting Algorithm! Всегда считал что O(n*log(n) ) это очень хороший показатель. Например, стандартная реализация сортировки в Java 6 является слегка модифицированным вариантом merge sort, которая соответственно дает время n*log(n). Получить ультра ускорялку сортировки можно используя дополнительные хитрости: используя дополнительные знания о самих объектах которые мы сортируем…