java变量的种类

1.根据声明方式,java变量有7种:
类变量(class variable):声明在class内,method之外并且用static修饰.
实例变量(instance variable):声明在class内,method之外并且未用static修饰.
方法参数(method parameter):声明在method小括号内的变量.
狭义的局部变量(local variable):声明在method内的变量.
异常捕捉参数(exception-handler parameter):声明在catch小括号内的变量.
构造方法参数(constructor parameter):声明在constructor小括号内的变量.
数组元素(array element):数组的元素没有识别名称,必须透过数组和索引值来识别.

2.根据变量内存分类,java变量有2种
heap variable:占用的内存在heap(堆)中,这类变量包括类变量、实例变量、数组元素,这类

变量会自动被jvm初始化默认值.
stack variable:通称广义的局部变量,其占用的内存在statck中,这类变量包括狭义的局部变

量、方法参数、异常捕捉参数、构造方法参数。狭义的局部变量不会被jvm初始化成默认值

,使用者必须自行初始化该变量,其余的会被jvm初始化成传入值.


### Java变量的分类 在 Java 编程语言中,变量可以分为三类:成员变量、静态变量和局部变量。每种类型的变量具有不同的作用域、生命周期以及内存分配方式。 #### 1. 成员变量(Instance Variables) 成员变量是在类内部定义但在方法外部声明的变量。它们属于特定的对象实例,并且每个对象都有自己的副本。成员变量的作用域覆盖整个类中的所有方法[^1]。 ```java private int instanceVar; // 这是一个成员变量 ``` 当创建一个新的对象时,JVM会自动为该对象初始化其所有的成员变量,默认值取决于数据类型(例如 `int` 类型默认为 `0`)。如果显式赋值,则使用指定的初始值。 #### 2. 静态变量(Static Variables) 静态变量通过关键字 `static` 声明,它不属于任何单独的对象而是由类本身共享。无论创建多少个对象,静态变量只有一个拷贝存在堆内存中。 ```java private static int staticVar; // 定义了一个静态变量 ``` 访问静态变量不需要实例化类即可完成操作,可以直接通过类名调用。需要注意的是,即使没有任何对象被实例化,只要加载了这个类到 JVM 当中,那么其中所含有的静态字段就会得到初始化处理。 #### 3. 局部变量(Local Variables) 局部变量仅限于某个代码块或者方法体内有效,一旦超出此范围就不能再继续引用这些名字代表的数据项。这类变量必须先赋予初值才能参与运算过程[^2]。 ```java public void method(int paramVar) { int localVar = 10; // 此处定义了一种局部变量 } ``` 另外关于数值型基本数据类型的大小及其表示区间如下所示: | 数据类型 | 所占位数 | 表达范围 | |----------|-----------|-------------------------------------------------------------------------| | byte | 8 | -128 至 127 | | short | 16 | -(2^15) 到 (2^15)-1 | | int | 32 | -(2^31) 到 (2^31)-1 | | long | 64 | -(2^63) 到 (2^63)-1 | | float | 32 | 大约 ±3.40282347E+38F (正负大约十亿五千万) | | double | 64 | 大约±1.79769313486231570E+308 | 布尔类型(boolean),虽然理论上只占用一位(bit),但实际上为了效率考虑通常会被实现成至少一字节(byte)[^4]。 ### 示例程序解析 下面给出一段综合运用以上三种不同种类变量的小例子来加深理解: ```java class VariableExample{ private String memberStr="我是成员字符串"; // 成员变量 public static void main(String []args){ System.out.println("打印静态变量"); StaticVariable sv=new StaticVariable(); sv.printVariables(); LocalVariable lv=new LocalVariable(); lv.showLocalVariable(); } } //演示静态变量 class StaticVariable extends VariableExample{ private static final String STATIC_STRING="我是静态字符串"; @Override public void printVariables(){ super.printVariables(); System.out.println(STATIC_STRING); } } //展示局部变量 class LocalVariable{ public void showLocalVariable(){ String localString="我是局部字符串"; System.out.println(localString); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值