在Josh给出的有缺陷的随机方法的例子中,该方法产生具有给定上限的正随机数n,我不明白他陈述的两个缺陷.
书中的方法是:
private static final Random rnd = new Random();
//Common but deeply flawed
static int random(int n) {
return Math.abs(rnd.nextInt()) % n;
}
Run Code Online (Sandbox Code Playgroud)
Random.nextInt()说,Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence.所以它不应该是,如果n是小的整数,则顺序会重演,为什么这个只适用于2的幂?Random.nextInt()生成均匀分布的随机整数,为什么会发生这种情况?(他提供了一个代码片段,清楚地证明了这一点,但我不明白为什么会出现这种情况,以及这与n是2的权力有什么关系).java random probability effective-java non-uniform-distribution
我创建了一个支持 websocket 的 Spring Boot 应用程序,我想在 acuator 提供的 prometheus scrape 端点上公开 WebSocketMessageBrokerStats。
我可以通过自动装配/注入访问 WebSocketMessageBrokerStats 对象。但是,该对象仅将相关指标(连接的套接字数量、线程池大小等)公开为汇总字符串。
这不是很有用,因为我最终希望将这些指标导出到普罗米修斯实例。有没有办法以原始形式(例如,作为 int 或 long)访问 WebSocketMessageBroker 统计信息公开的统计信息。