为了账号安全,请及时绑定邮箱和手机立即绑定

为什么没有赋值的时候,float型变量默认为零?而String类变量为null?

public class HelloWorld {
	float a;
	public static void main(String[] args) {
		HelloWorld helloword=new HelloWorld();
		System.out.println("a:"+helloword.a);
	}
}
求解释为什么是0.0?不是没有初始化吗?


正在回答

5 回答

在类中定义的变量,术语叫做域(field)。包括:

类域(class field),俗称静态域、静态变量、类变量,特点是用static修饰,static用来说明该域是属于类的。每个类只有一个类域。加载类的时候、类域会随之加载,在创建对象之前类域就已经赋值;

实例域(instance field),又称实例变量。创建对象并初始化之后,每个对象拥有自己的取值不同的实例域。

如果没有在构造器中、声明中、代码块中进行初始化数据域,那么就会自动的赋予默认值:数值为0;布尔值为false;对象引用为null。String是类,因此default为null,float是数值,因此default为0.0.

0 回复 有任何疑惑可以回复我~

float默认的就是0.0

0 回复 有任何疑惑可以回复我~

float未初始化的默认值就是0.0

0 回复 有任何疑惑可以回复我~

成员变量float不是初始化0.0的吗

0 回复 有任何疑惑可以回复我~

string为null我已经知道了,现在不清楚为什么float类型的a输出0.0;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么没有赋值的时候,float型变量默认为零?而String类变量为null?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信