Java 类变量有默认值,可以不初始化;但局部变量必须要初始化

  • 成员变量:定义在类中,方法体之外。
  • 局部变量:定义在方法体,构造方法,语句块中的变量。

局部变量定义后,必须初始化,即赋值,才能使用(它没有默认值)

public class Demo{                                              
	public static void main(String[] args){
		int i;  //没有赋值
		System.out.println("i is" + i);
	}
} 

编译结果:
在这里插入图片描述

成员变量定义后可以不初始化,因为它有默认值

变量类型默认值
int,byte,short,long0
char一个空格
float,double0.0
引用值(比如String)null
public class Demo{    
	//成员变量(更准确说是:静态变量)不初始化
	static int x1;             
	static byte x2;
	static short x3;
	static long x4;
	static String x5;//String是用引用值,引用值都是null
	static char x6;
	static float x7;
	static double x8;                             
	public static void main(String[] args){
		System.out.println("x1 is " + x1);//int:0
		System.out.println("x2 is " + x2);//byte:0
		System.out.println("x3 is " + x3);//short:0
		System.out.println("x4 is " + x4);//long:0
		System.out.println("x5 is " + x5);//String(引用值):null
		System.out.println("x6 is " + x6);//char:空格
		System.out.println("x7 is " + x7);//float:0.0
		System.out.println("x8 is " + x8);//double:0.0
	}
} 
//但是它编译成功,运行结果可以看出 成员变量有默认值,并且是各个类型类变量的默认值

实例提示: 演示代码是为了方便,直接在main中调用该类的静态变量(成员变量前加statis)

在这里插入图片描述
不过还有一个问题,char型类变量的默认值到底是啥,上图看不出来啊

做个代码实验:

public class Demo{    
	static String x5;
	static char x6;          
	public static void main(String[] args){
		System.out.println("x5 is " + x5 + "haha");
		System.out.println("x6 is " + x6 + "haha");
	}
} 

看下图,可以看出char型类变量的默认值是' ',确定是个空格
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值