【发布时间】:2017-04-09 02:48:04
【问题描述】:
找不到对正在发生的事情的明确描述,所以我想把这个提交给社区。p>
public class Temp {
static int i;
int j;
int sum = i+j;
}
public class Main{
public static void main(String[] args){
Temp obj = new Temp();
obj.i = 1;
obj.j = 2;
System.out.println(obj.sum); //returns '0'
}}
是不是因为在实例化过程中整数i和j都是空的,所以'sum'变量是空的?
提前致谢!
【问题讨论】:
-
“空”或更准确地说它们是 0。Java 原语永远不会“空”,它们被初始化为 0(或 false)。引用可以是
null,它也不是真正的“空”,null 是一个值。 -
重申标记空间所说的内容。 Java 中没有“空”变量或字段之类的东西。每个变量或字段都有一个确定的值,你可以随时观察它。该值是明确初始化(例如
int foo = 42;)或隐式默认初始化的结果。从你的心智模型和词汇中删除“空变量”!
标签: java class variables scope primitive