java中静态整型变量如何分配默认零
我的问题是:如何将默认零分配给静态整数变量 这是我的代码:java中静态整型变量如何分配默认零,java,Java,我的问题是:如何将默认零分配给静态整数变量 这是我的代码: class Point { static int i; public static void main(String[] args) { System.out.println("" + i); } } 输出必须是: 0所有类级编号的原语将初始化为0 所有类级对象将初始化为null 其他默认值包括 byte 0 char '\u0000' boolean false 由于i是一个整数,
class Point {
static int i;
public static void main(String[] args) {
System.out.println("" + i);
}
}
输出必须是:
0
所有类级编号的原语
将初始化为0
所有类级对象
将初始化为null
其他默认值包括
byte 0
char '\u0000'
boolean false
由于
i
是一个整数,它将0
声明字段时并不总是需要赋值。已声明但未初始化的字段将由编译器设置为合理的默认值。一般来说,此默认值将为零或null,具体取决于数据类型。然而,依赖这些默认值通常被认为是糟糕的编程风格
只有当你在课堂上学习时才会发生这种情况
如果它是一个局部变量,则必须在使用之前初始化。否则编译时错误。类的基元成员(静态或非静态)设置为默认值,如下所述
int
值默认设置为0
。相反,您可以说它们是默认值。short、int、long、float、double、char、byte都是原语-它们不是对象。但不完全正确:boolean
默认设置为false
,char
默认设置为\u0000
。此外,不仅类级别,而且局部变量默认为0,null、false和\u0000
@ChristiaandeJong局部原语变量不会默认为0
@user2310289如果我可以加倍投票,我会这样做。既然您这么说了,就确实想到了局部变量不会被初始化。我错了,谢谢提醒。
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (or any object) null
boolean false