@hirthwork

Тег java в блоге hirthwork

hirthwork

Словил StackOverflowError от javac

hirthwork

В регулярках джавы можно сделать named capturing groups (если вы не знаете что это такое, то вам не сюда, а в кружок кройки и шитья), и по имени группы из Matcher'а можно доставать captured подстроку. Но при этом из скомпиленной регулярки нельзя достать список имён этих самых capturing groups, которые были заданы в регулярке. Второтег

hirthwork

Иногда ты используешь type erasure, а иногда type erasure имеет тебя

hirthwork

Забавная история. Привык что в джаве статическая инициализация класса происходит в первую очередь при его загрузке. Однако не всё так просто — до статической инициализации происходит инициализация полей enum'а:

enum MyEnum {
    INSTANCE;

    static {
        System.out.println("static");
    }

    MyEnum() {
        System.out.println("c'tor");
    }
}

public class Main {
    public static void main(final String[] args) {
        System.out.println("main");
        System.out.println(MyEnum.INSTANCE);
    }
}

Печатает:

main
c'tor
static
INSTANCE
hirthwork

Переизобрёл unified diff. Просто потому что могу.

hirthwork

Ну пиздец, теперь весь код с синхронайзедов на локи переписывать: https://www.ibm.com/develop...-jtp10264/index.html

hirthwork

минутка рекламы: http://www.twmacinta.com/myjava/fast_md5.php — охуенная реализация, которая работает в два раза быстрее родной реализации MD5 в джаве // завтра катну в продакшен и посмотрю что распидорасит

hirthwork
Map<String, Integer> m = ...;
Number n = m.getOrDefault(key, new Double(0.5d));

Не компилится. А всё потому, что авторам лень было сделать эту функцию дженериком. Говно, кароч
// Плюсопетухи приглашаются покукарекать о том что это ненужно, потому что у них такого нет

hirthwork

Не используйте FilterOutputStream — это говно: http://grepcode.com/file/re...utputStream.java#120

hirthwork

знатно объебался со своим повсеместным использованием try-with-resources
уж если возможна в логике ситуация, когда close вызывать не нужно, то и нехуй try-with-resources тогда в этом месте использовать

hirthwork

Б-же, благослови изобретателей diamond operator и type intersection

hirthwork

Как же я, блядь, ненавижу ёбаный type erasure. Напрочь убивает все позывы к метапрограммированию.

hirthwork

Я пока точно не уверен, но скорее всего через полчаса вы получите очередную порцию нытья про то что type erasure в джаве — ёбаное говно.

hirthwork

Почему есть static String Objects.toString(Object), но нет static T Objects.clone(T)? Сука, я как плебей должен ручками на null проверять?

hirthwork

дваждымандопроёбище блядь
оказывается, что java не перечитывает /etc/resolv.conf, если он изменился. нужно изъёбываться и вызывать через JNI res_init(3), чтобы изменения подхватились
подробности тута и по ссылкам: https://groups.google.com/f...sympathy/Z8t06cqaWQE

hirthwork

запустил простенький бенчмарк с -server. работа с простыми объектами стала в два раза медленнее, а вот работа с атомиками чуть быстрее

hirthwork

Не используйте glob'ы в java.nio.file.Files — это говно

hirthwork

Шёл 2017 год, но чтобы получить количество секунд с начала эпохи всё ещё нужно ебаться одним из способов на выбор:
a) System.currentTimeMillis() / 1000 — блядь, всю жизнь мечтал магические константы по коду расставлять
б) Instant.now().getEpochSecond() — 2 (две) аллокации объектов, 2 (два) целочисленных деления и ещё горстка арифметических операций на сдачу
в) TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) — Больше текста, больше текста! // пожалуй на этом варианте и остановлюсь. Главное — не заглядывать больше в реализацию TimeUnit

hirthwork
hirthwork

это чувство, когда понадобилось множественное наследование

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.