回答
每个变量都需要Java中的类型。
这不是一个变量的声明,这是一个变量的赋值。 'a'的类型在其他地方定义。所以,这个代码本身不会编译,你需要一个变量声明,如:
class X {
private static int a;
static {
a = 6;
}
}
作为回答下面的评论,这是initializion序列:
- 静态报表/静块被执行。
- 实例变量被赋予默认值
- 如果实例变量被分配了一个编译时间常量,则会初始化实例变量。否则,将使用项目5完成(实例变量和实例初始化程序将按照它们定义的顺序从顶部到底部一起完成)。
- 构造函数运行
- 实例初始化块在所有调用超级已完成但尚未执行构造函数的其他部分之前运行。
- 其余的构造函数被执行。
这个静态在构造函数之前运行吗? –
结帐第12.4章为这个答案:http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html –
我已经更新了我的例子更扩展的答案[来源] (http://www.coderanch.com/t/267125/java-programmer-SCJP/certification/Initializing-Sequence) –
我想你的地方初始化的变量
private static int a;
static {
a = 6;
}
- 1. 为什么这个变量需要是静态的?
- 2. 静态变量不需要
- 3. 为什么要保留一个静态变量?
- 4. 为什么静态变量需要在C++中声明两次
- 5. Django - 为什么模型类中声明的变量静态
- 6. 什么类型的变量不能是静态的?
- 7. 为什么不能在泛型类中使用原始类型,静态变量?
- 8. 为什么静态变量不好?
- 9. 为什么对象类型需要动态内存和原始类型需要静态内存?
- 10. 为什么在加载这种类型的静态变量不需要调用代码
- 11. 为什么不能在非静态块中声明静态最终变量?
- 12. 为什么CustomFieldSerializer需要静态方法?
- 13. 为什么这里需要静态
- 14. 为什么静态需要在这里
- 15. 为什么我不能声明一个参数化的静态类变量?
- 16. 为什么try块需要一个catch
- 17. 为什么模板类型的初始化需要重复变量的类型?
- 18. 作用域类型变量需要显式作用。为什么?
- 19. 为什么不是这个静态c#变量改变?
- 20. 什么时候一个静态constexpr类成员需要一个超类定义?
- 21. 为什么不设置一个静态变量来消除静态变量的目的?
- 22. 为什么注释一个lambda类型不需要-XScopedTypeVariables?
- 23. 为什么需要一个变量指向一个结构
- 24. 为什么静态类不能有非静态方法和变量?
- 25. 为什么不能将静态类变量分配给堆栈?
- 26. 为什么接口变量总是静态的,为什么不抽象类总是静态的?
- 27. 为什么不声明每个变量都是静态的
- 28. 需要的变量类型或不
- 29. OpenGL为什么需要统一变量(而不是常量)
- 30. 为什么我需要为静态lib构建指定运行时库类型?
'A' 确实需要的类型。 a的类型必须在静态块之上声明,否则将无法编译。 –
这本身不会编译。 –
[This](http://www.jusfortechies.com/java/core-java/static-blocks.php)是我在这个主题上找到的最佳参考。 – Mordechai