java中static修饰变量默认赋值问题

      首先我们都知道java中普通声明的变量在未初始化赋值的情况下无法直接使用,但是类中以static修饰的变量(即静态变量)会在编译期间由系统自动初始化并赋予默认值,所以在我们没有实例化的情况也可以使用。这是因为java中任何变量会在程序运行中通过实例化由系统动态的自动分配内存空间,而静态是在编译后便已分配了内存,并且随着类的存亡而存亡,只要类没有结束退出,静态变量所占有的内存就会一直存在。这么做的目的就是使得静态方法或者静态变量在没有实例化的情况下也可以被直接使用,那么我们接下来说一下我们这篇文章的主题,由static所修饰的变量初始值的问题。

	//我们先依次定义八个基本数据类型的变量,再直接输出查看结果
	public static byte by;
	public static int num;
	public static float fl;
	public static long l;
	public static short s;
	public static double d;
	public static char c;
	public static boolean flag;

输出结果如下:

by = 0

num  = 0

fl = 0.0

l = 0

s = 0

d = 0.0

c = 

flag = false

其中char类型的c输出的是空,对应ASCII码中的0

接下来在做测试String类型和StringBuffer类型的数据默认赋值是null;

这些小细节中能看到静态变量的工作原理,其中int和String类型的静态默认赋值是java面试中经常能碰到的问题,希望能给大家提供帮助,谢谢!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值