During this year's GeeCON and GeeCON Prague my company 4FinanceIT was giving away some gifts for people who correctly answered a couple of programming questions. Quite a few people asked about correct answers. Since I happened to write these tasks along with sample answers, let's share them publicly then: 1. Which of the following will not work as expected in multi-threaded environment (choose one)? new LongAccumulator(Math::min, Integer.MAX_VALUE); //a) new LongAccumulator(Math::max, Integer.MIN_VALUE); //b) new LongAccumulator(Math::addExact, 0); //c) new LongAccumulator(Math::subtractExact, 0) //d) Answer d) - according to JavaDoc: this class is only applicable to functions for which the order of accumulation does not matter Let's say you are accumulating 1 and 2 . The result can be 0 - 1 - 2 but also (0 - 1) - (0 - 2) or (0 - 2) - (0 - 1) . See also: How LongAccumulator and DoubleAccumulator classes work? 2. Implement the foll