Деньги в double: 4.35 * 100 выходит 434
Четыре цены из ста точны в double. На миллионе сумм копейка терялась только на точной половине: 3656 таких при ставке 18 процентов, ноль при 20.
Четыре цены из ста точны в double. На миллионе сумм копейка терялась только на точной половине: 3656 таких при ставке 18 процентов, ноль при 20.
javac сохраняет разницу между x * 2 и x << 1. Ниже javac её уже не измерить. Единственное умножение, оставшееся в скомпилированном цикле, компилятор поставил туда сам.
Кракозябры детерминированы. Шесть букв, двенадцать байт, пять кодовых страниц и таблица, по которой видно, какая пара кодировок столкнулась.
Три разных обрыва одной цепочки дают один и тот же NullPointerException с пустым сообщением. Option превращает все три в None. А потом счётчик аллокаций говорит, что Some не стоит ничего. Найти сам Some получается только через -XX:-DoEscapeAnalysis.