相关疑难解决方法(0)

静态和非静态初始化代码块之间有什么区别

我的问题是静态关键字的一个特定用法.可以使用static关键字来覆盖不属于任何函数的类中的代码块.例如,以下代码编译:

public class Test {
    private static final int a;    
    static {
        a = 5;
        doSomething(a);
    }
    private static int doSomething(int x) {
        return (x+5);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你删除static它抱怨的关键字,因为变量afinal.但是,可以删除两个finalstatic关键字并使其编译.

这两种方式让我感到困惑.我怎么能有一个不属于任何方法的代码部分?如何调用它?一般来说,这种用法的目的是什么?或者更好,我在哪里可以找到关于此的文档?

java static static-initializer

345
推荐指数
8
解决办法
23万
查看次数

Java中的静态块

前几天我查看了一些代码,我遇到了:

static {
    ...
}
Run Code Online (Sandbox Code Playgroud)

来自C++,我不知道为什么会这样.它不是一个错误,因为代码编译得很好.什么是"静态"代码块?

java static

304
推荐指数
5
解决办法
18万
查看次数

如何强制一个类初始化?

什么是最好,最干净的方法?具体来说,我需要静态初始化程序块中的一些代码才能在该类中运行,但我希望尽可能使它看起来更干净.

java coding-style static-initializer

41
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×3

static ×2

static-initializer ×2

coding-style ×1