java变量的分类

java中变量的本质和分类

java变量的本质

变量的本质代表的是“一个可操作的存储空间”,空间的位置是确定的,但是空间里存什么是不确定的,我们可以通过变量名称访问对应的“存储空间”,进而对其存储的值进行操作。
java作为一种强类型语言,对于每一个变量都必须声明其对应的数据类型。变量的数据类型决定变量对应“存储空间”的大小。例如int a=1,他表示变量a的存储空间大小为4个字节。
变量作为程序中最基本的存储单元,其要素包括变量名变量类型作用域。因此变量在使用前必须声明,只有在声明之后,才能为其分配相应长度的存储空间。变量声明的格式如下:

示例

	type    varName  [=value] [,varName[=value]...] //[]中的内容为可选项
	数据类型 变量名  [=初始值] [,变量名 [=初始值]...]
	//小例子
	int a;
	int b=10;
	int a,b;

注意事项

  • 每个变量都有类型,类型可以是基本类型也可以是引用类型。
  • 变量名称必须是合法的标识符。
  • 变量的声明是一条完整的语句,因此必须以分号作为结束。
    ** 温馨提示 **
    不提倡==int a,b;==这种一行声明多个变量的习惯,逐一声明有利于增加代码的可读性。

java变量的分类

java变量大致可以分为三类,第一类为局部变量;第二类为成员变量(通常也称为实例变量);第三类为静态变量。

第一类:局部变量(local variable)

局部变量是方法或语句块内部定义的变量,其生命周期是从声明位置开始到方法或语句块执行完毕为止。局部变量在使用前必须先声明并初始化(赋值),否则会出错。
局部变量的初始化有两种方式,一种是先定义再初始化,代码中方式一所示,另外一种是定义的同时进行初始化,如方式二所示。

public class TestVariable{
	public static void main(String[] args){
		//方式一
		int age;
		age=18;
		//方式二
		int weight=50;
		//错误赋值示例!!!注意这样写是错误的,不要模仿!!!!
		class height{
			int height;
			}
			height=180;
		} 
}

错误使用示例一:在这里虽然定义了身高height,也有初始化,为什么会报错呢?原因在于之前说的语句块的概念,class height{}定义的是height类,也就是一个语句块,局部变量只能在语句块内才能使用,简单点理解就是在一个括号内是可以使用的,虽然也进行赋值了,但是赋值语句在括号之外 ,因此出现报错的情况。在这里插入图片描述
错误使用示例二:在test1中虽然定义了 i 但是没有初始化,因此在执行 j =i+5的时候会报错,正确的写法如test2中所示。

	public void test1(){
		int i;
		int j=i+5;//编译出错,变量i还没有初始化
	}
	public void test2(){
		int i=1;
		int j=i+5;//编译正确
	}

第二类:成员变量(member variable)

在某个方法外部,类内部定义的变量,从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型默认的初始值。部分变量的默认初始值如下表所示

数据类型初始值
int0
double0.0
char‘\u0000’
booleanfalse
public class TestVariable{
	int a;//成员变量,会自动初始化
	public static void main(String[] args){
		.....
		} 
}

第三类:静态变量(static variable)

静态变量使用static定义,从属于类,声明周期伴随类始终,从类加载时产生,类卸载时结束。如果不进行初始化,与成员变量一样,会自行初始化成该类型的默认初始值。

public class TestVariable{
	static int a;//静态变量,会自动初始化
	public static void main(String[] args){
		.....
		} 
}

小结

类型声明位置从属关系生命周期
局部变量方法或语句块内部方法、语句块从声明位置开始,直到方法或语句块执行完毕时,局部变量消失
成员变量(实例变量)类内部、方法外部对象成员变量伴随对象的创建和消失而产生和消失,即当对象被创建时,成员变量也跟着创建;当对象消失时,成员变量也随之消失
静态变量(类变量)类内部(需要用static修饰)当类被加载时,静态变量有效,类被卸载时,静态变量消失
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值