小编Kam*_*osz的帖子

为什么Java 8接口中不允许使用`private static`字段?

当我尝试编译以下代码时

public interface SomeInterface{
    private static Logger logger = Logger.getLogger();

    public default void someMethod(){
        logger.info("someMethod: default implementation");
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

Illegal modifier for the interface field SomeInterface.logger; only public, static & final are permitted
Run Code Online (Sandbox Code Playgroud)

当我删除private修饰符时,代码编译,但我不希望包中的其他类看到此字段.

为什么Java在实际上有意义时不允许我做这样的事情?

java interface private-members java-8

10
推荐指数
2
解决办法
3304
查看次数

为什么内联Math.max会使代码速度超过200倍?

我最近开始对一些Java代码进行基准测试,以便为我的程序获得最佳性能结果,并注意到一些奇怪的事情.也就是说,我已经对以下方法进行了基准测试:

private static final int n = 10000;

public static void test0(){
    int m = 0;

    for(int i = 0; i < n; ++i){
        m = Math.max(i, m);
    }
}

public static void test1(){
    int m = 0;

    for(int i = 0; i < n; ++i){
        m = ((i >= m) ? i : m);
    }
}
Run Code Online (Sandbox Code Playgroud)

得到了那些结果:

          | Test 0          | Test 1          | 
----------+-----------------+-----------------+-
Average:  | 51,77 ns        | 13956,63 ns     | 
Best:     | 0,00 ns         | 6514,00 …
Run Code Online (Sandbox Code Playgroud)

java performance

8
推荐指数
1
解决办法
152
查看次数

在 Eclipse 中自动在静态和非静态导入之间添加一个空行

我想根据Google Java Style格式化我的代码。

涉及到import 语句时存在一些问题。除了手动编辑每个类之外,我无法满足的一个规则是:

如果同时存在静态和非静态导入,则单个空行将两个块分开。

显然,没有办法Organize Imports在 Eclipse 中配置操作来添加这个空行。

是否有任何变通方法、插件或计划添加此类功能(或者是我自己编写一个或使用其他 IDE 的唯一选择)?

eclipse code-formatting checkstyle

6
推荐指数
2
解决办法
2721
查看次数