变量是程序中最基本的存储单元,从本质上讲,变量其实是内存中的一小块区域。所以要为其分配一定的存储空间。
变量
2.1变量(variable)是用来存储数据的一块存储区域,在程序运行中它的值可以发生变化。变量可以存放一种数据类型的值,Java程序在运行加载时会根据变量的不同数据类型来分配不同的内存空间,变量的数据类型在声明时指定。
2.2变量是指在程序的运行过程中随时可以发生变化的量,作用是:
1.变量是程序中数据的临时存放场所
2.保存程序运行时用户输入的数据
3.特定的运算结果等
2.3变量的声明一个变量只有在声明后才有效,声明的作用就是确定该变量要存储的数据类型。声明变量的语法格式如下:
数据类型 变量名;
如果要同时声明多个相同数据类型的变量,可以如下写:
数据类型 变量名1,变量名2;
代码举例如下:
int number, max;
boolean isOK;
变量在声明后,不能直接访问,只有被赋值的变量才能够被访问,否则就会出现运行错误。
一.变量分类
变量分为成员变量 和 局部变量
- 成员变量 分为 实例变量 和 类变量(实例变量也叫对象变量)
实例变量和类变量的区别在于:实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;而类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;
类变量就是静态变量哦 - 局部变量也叫静态变量,也就是在变量前加了static 的变量
形参:在定义方法签名时定义的变量,形参的作用域在整个方法中都有效
方法局部变量:在方法体内定义的局部变量,它的作用域是从定义该变量的地方生效,到该方法结束时失效
代码块局部变量:这个局部变量的作用域从定义该变量的地方生效,到该代码结束时失效。
3.常量
在程序中往往会存在变量值不需要变化的情况,比如表示圆周率的变量,比如表示黄金分割点的变量,那么这些值不变的变量就叫常量。常量与变量相比,也是用来存储数据的一块存储区域,但是它在程序运行中值不会发生变化。在Java中,常量用关键字final来表示,它也是有数据类型的,语法如下:
final数据类型 常量名 = 初始值;
常量在声明的时候必须初始化;
常量在初始化后值不能再更改,否则会引起错误。
例如:
final double PI = 3.14;
二.成员变量与局部变量的区别
1、在类中的位置不同
成员变量:在类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中)
2、在内存中的位置不同,可以看看Java程序内存的简单分析
成员变量:在堆中(方法区中的静态区)
局部变量:在栈中
3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失
4、初始值
成员变量:有默认初始值 (只有在类实例化的时候,实例变量才会被赋予默认值,默认值为0)
局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The local variable xxx may not have been initialized)
成员变量和静态变量的区别
A:所属不同
- 静态变量属于类,所以也称为为类变量
- 成员变量属于对象,所以也称为实例变量(对象变量)
B:内存中位置不同 - 静态变量存储于方法区的静态区
- 成员变量存储于堆内存
C:内存出现时间不同 - 静态变量随着类的加载而加载,随着类的消失而消失
- 成员变量随着对象的创建而存在,随着对象的消失而消失
D:调用不同 - 静态变量可以通过类名调用,也可以通过对象调用
- 成员变量只能通过对象名调用