2 yaowen424 yaowen424 于 2015.07.19 21:55 提问

有个java的问题想问问大家,欢迎进来帮忙解答下,谢谢

为什么这段代码运行结果0和3呢?

public class Test {
static int a;
static int i=3;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(a+"\n"+i);
}

}

11个回答

Evankaka
Evankaka   Ds   Rxr 2015.07.19 21:58

静态Int变量默认为0

yaowen424
yaowen424 回复林炳文Evankaka: 难道这个是要记住的吗?
2 年多之前 回复
Evankaka
Evankaka 回复yaowen424: 这个是系统编译器做的事情 了
2 年多之前 回复
yaowen424
yaowen424 这个我知道是变为0;但是我想知道究竟是怎么变成的呢?能告诉我吗?谢谢
2 年多之前 回复
tongyi55555
tongyi55555   2015.07.19 22:40

是的,这个static变量初始化的时候有默认值,boolean为false,其他数值类型都是0.

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.19 23:13

静态 int 变量默认0

u011575570
u011575570   2015.07.19 23:18

int初始化就是0。和静态没关系吧?

CSDNXIAOC
CSDNXIAOC   2015.07.19 23:30

1.static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。     2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内......
答案就在这里:有个java的问题想问问大家,欢迎进来帮忙解答下,谢谢
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

ydd24516
ydd24516   2015.07.20 00:18

其实a=0这个是跟java中的变量类型有关,java中变量分为成员变量(类体中声明的,a,i都是)和局部变量(方法中声明的,例如在main方法中定义的变量就叫局部变量)两种,a是类的成员变量,在Test这个类初始化时会调用默认的无参函构造数,这个构造函数会将int类型的a初始化成0。

lytton2009
lytton2009   2015.07.20 08:51

java与c++的区别之一 就是java中定义的变量有默认值。
而c++中没有默认值。要在初始化列表中初始化。

strutce
strutce   Ds   Rxr 2015.07.20 09:53

8种基础类型的默认值byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false

u014084771
u014084771   2015.07.20 18:57

int 类型的变量,没定义初始值的话,默认是0,输出的时候就是0 换行 3,嗯就酱

fashiondingzhi
fashiondingzhi   2015.07.20 20:16

只要没定义初始值就是0,不用去想为什么,类似的东西有很多,比如
public class A

{
public static void main(String[] args)
{
int a = 'A';
int b = 'a';
int c = a+b;
System.out.println(c);
}
}
输出的结果是162,这个是牵涉到ASCII码的问题

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片