← All posts tagged Java

mismatch
Java code
// Как жить без приватных методов в интерфейсах?
// Например, пишем такое в DefaultsInterface.java:
public interface DefaultsInterface {

	default void test1() {
		DefaultsInterfaceCompanion.INSTANCE.test("S1");
	}

	default void test2() {
		DefaultsInterfaceCompanion.INSTANCE.test("S2");
	}
}

enum DefaultsInterfaceCompanion {
	INSTANCE();

	void test(String suffix) {
		System.out.println("test" + suffix);
	}
}

// Да, замена не равноценная, но проблему дублирования кода 
// в дефолтных методах решает, не загрязняя интерфейс. 
mismatch
Java LinkedHashMap для LRU-кэша на коленке. Наткнулся здесь, а потом и в JavaDoc это нашел. Идея не новая, но всегда полезно вспомнить базовые вещи.
На практике я использовал CacheBuilder из Guava, а еще советуют Caffeine (но там, как я понял, другой алгоритм вытеснения элементов из кэша).
mismatch
Java geohash Понадобилось описать поиск в радиусе на карте каким-то идентификатором. Google подсказал, что недавно изобрели такую штуку, как геохэш (https://en.wikipedia.org/wiki/Geohash). Дальнейший поиск вывел на статью, в которой достаточно деталей для реализации поиска по региону с использованием геохэшей (http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves). В итоге я нашел готовую java-библиотеку, реализующую такой поиск (https://github.com/kungfoo/geohash-java)!
Да здравствуют Google и Open Source! :)
mismatch
Java infoq.com — годный доклад про различные настройки и утилиты для JVM, а также про дампы и их анализ. Для себя отметил плагины Thread Dump Analyzer и TopThreads.
mismatch
Java fp Последнее время интересуют меня идеи функционального программирования. При этом основной используемый в работе язык — Java. Естественно захотелось совместить приятное с полезным. Нашел 2 библиотеки: Functional Java ( functionaljava.org ) и totallylazy ( code.google.com ). Последняя мне больше понравилась, но с документацией беда.
Кто-то использовал более-менее серьезно хоть одну из них и какие плюсы/минусы увидел?