变量自动初始化的默认值?

变量自动初始化的默认值?

1.在类的字节码被JVM加载进内存时,系统会对该类中的静态成员变量进行初始化,即设置默认值
static修饰的静态成员变量才会被自动初始化。

实验代码:

public class Test2 {

	static byte b;
	static int i;
	static short s;
	static long l;
	
	static boolean bool;
	static char ch;
	static float f;
	static double d;
	
	static String str;
	static Integer Int;
	static Boolean B;
	
	
	public static void main(String[] args) {
		System.out.println("基本数据类型:");
		System.out.println("byte:" + b);
		System.out.println("int:" + i);
		System.out.println("short:" + s);
		System.out.println("long:" + l);
		System.out.println("bloolean:" + bool);
		System.out.println("char:" + ch);
		System.out.println("float:" + f);
		System.out.println("double:" + d);
		System.out.println("引用数据类型:");
		System.out.println(str);
		System.out.println(Int);
		System.out.println(B);
	}
}

结果输出:
在这里插入图片描述
说明: 类的静态成员变量自动初始化时,基本数据类型的默认如上图所示。需要注意的时 char 类型,它的值其实也是0,不过它代表的是码表上0对应的字符,也就是空字符。而引用类型默认值都为null.

2.数组初始化
实验代码:

public static void main(String[] args) {
		String[] str = new String[5];
		Integer[] inte = new Integer[5];
		
		byte [] b  = new byte[5];
		short [] s  = new short[5];
		int [] i  = new int[5];
		long [] l  = new long[5];
		
		boolean [] bo  = new boolean[5];
		char [] ch  = new char[5];
		float [] f  = new float[5];
		double [] d  = new double[5];
		
		
		System.out.println(str[0] + " " + inte[0] );
		
		System.out.println(b[0]);
		System.out.println(s[0]);
		System.out.println(i[0]);
		System.out.println(l[0]);
		System.out.println(bo[0]);
		System.out.println(ch[0]);
		System.out.println(f[0]);
		System.out.println(d[0]);
}

输出结果:
在这里插入图片描述
说明: 上述结果显示数组元素的自动初始化和类的静态变量自动初始化结果一致,通过这个例子说明系统自动初始化时,对每一个类型的变量是固定的,比如
byte short int long 默认值都为0
boolean 为 false
char 为空字符(\u0000)
float double 为0.0
包装类型的变量默认值都为 null(指引用为空)
数组中元素的默认值与数组的类型相符
注意: 未初始化的变量是不能被调用的,否则编译会报错。

总结: 越是基础的东西越重要,所用的复杂都是由很多简单的基础组成的,量变达到质变。所以不能忽略看起来很简单的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值