【发布时间】:2016-09-27 19:30:11
【问题描述】:
在我看来,int变量的默认值是0。但是,在我的这个演示中,变量num3没有初始化值。
class Solution
{
static int num1;
int num2;
public static void main(String[] args){
int num3;
int[] nums = new int[5];
System.out.println("num1: " + num1);
Solution sol = new Solution();
System.out.println("num2: " + sol.num2);
System.out.println("num3: " + num3);
System.out.print("nums:");
for(int item : nums)
System.out.print(" " + item);
System.out.println("");
}
}
我在 Ubuntu16.04 上运行了我的演示。我得到的错误如下:
Solution.java:12: error: variable num3 might not have been initialized
System.out.println(num3);
^
1 error
如果我删除这行System.out.println("num3: " + num3);,我得到的结果如下:
num1: 0
num2: 0
nums: 0 0 0 0 0
如果有人知道原因,请告诉我。谢谢。
【问题讨论】:
-
因为 Java。阅读规范。
-
变量未初始化,因此没有任何值。
-
Java 不允许你有未初始化的本地变量。
-
"在我看来,int 变量的默认值是 0。"显然,Java 设计者有不同的看法。
-
不能不初始化局部变量,否则会导致编译错误
标签: java initialization