Java变量详解

 

  • Java变量

一、根据声明方式来分类(7种)

成员变量fields):声明在class之内,method之外

1. 实例变量(Instance Variables, Non-Static Fields):不用static声明,实例变量的值依实例的不同而不同。它随对象的产生而产生,随对象的销亡而销亡。

2. 类变量(Class Variables, Static Fields):static声明的域(field),static告诉编译器无论这个类被实例化了多少次,这个变量的一个副本都确切存在。另外,可以再加上final指示常量(值用不可变)。

 

3. 狭义的局部变量Local Variables):声明在method (block) 中的变量,作用域局限于其中,存储method临时状态系统自动分配局部变量的初值。

 

参数Parameters

4. method parameter 声明于method小括号中的变量;

5. constructor parameter声明于constructor小括号中的变量;

6. expection-hander parameter: 声明于catch小括号中的变量。

 

7. 数组元素array elements):没有识别名称,必须通过数组名和索引值来识别,例如a[0]

 

二、根据变量内存来分类(2种)

1. heap variable: 占用的内存在heap中,包括class variable, instance variable, array element, 这类变量会自动被JVM初始化成默认值。

 

2. stack variable: 通称广义的局部变量(pan-local variable),占用的内存在stack中,这类变量包括了狭义的局部变量和参数类变量。狭义的局部变量不会被JVM初始化成默认值,使用者必须自行初始化该变量,但是参数类变量会被JVM初始化为传入值。

 

三、根据使用方式来分类(3种)

1. class variable

2. instance variable

3. 广义的局部变量:包括狭义的局部变量和参数类变量

至于“数组元素”,没有必要为它多分出一类。我们通常将数组视为“对象”,将数组元素视为对象的instance variable.

 

!在Java中不一定要在类定义的一开始就声明变量(尽管大部分情况下是这么做的),只要在变量使用前声明就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值