变量的本质:
变量的本质其实就是代表一个“可操作的存储空间”,空间位置是确定的,但是里面放置的是什么值是不确定。我们可以通过变量名来访问“对应的存储空间”,从而操作这个“存储空间”存储的值。
例如:车位;变量就相当于车位,车位是确定的,但车位里具体停放什么车辆是未知的
变量声明:
格式为:
type varName [svalue][,varName[svalue]...];
//[]中的内容为可选,可有可无
//数据类型 变量名 [初始值][,变量名[初始值]...];
在Java中,每一个变量属于一种类型(type),在声明变量时,变量所属的类型位于变量名之前,Java是一种强制类型语言,每个变量都必须声明其数据类型,变量的数据类型决定变量占据存储空间的大小,变量是程序中最基本的存储单元
【示例1-1】声明变量
double dou;
long lon;
int age;
不同的数据类型的常量会在内存中分配不同的空间。
注意事项:
1.每个变量都有类型,类型可以是基本类型,也可以是引用类型
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量名必须是一个以字母开头的由字母或数字构成的序列
【示例1-2】在一行中声明多个变量
int i,j;//两个变量的数据类型都是int
个人建议
不提倡这种“一行声明多个变量”的风格,因为逐条声明变量可提高程序的可读性。声明变量需初始化才能使用。
需要注意在Java中声明变量时,“字母”和“数字”的定义非常广泛,字母包括‘A~Z’,‘a~z’或某种语言中代表字母的任何Unicode字符
知识扩展:如果想知道哪些Unicode字符属于Java中的字母,可以使用Character类中的isJavaIdentifierStart和isjavaidentifierpart方法进行监测
变量分类:
局部变量(local variable):方法或语句块内部定义的变量。生命周期是从声明的位置开始到方法或语块执行完毕为此。
【示例2-1】局部变量
public static void main(String[] args) {
int age;//局部变量:只能在mian方法中使用
{
String name;//局部变量:语句块,只能在语句块中使用
}
}
局部变量在使用之前必须先声明,初始化(赋初值)再使用
【示例2-2】
int i;//必须初始化,否则i+5将会报错
int j = i + 5;
成员变量(也叫实例变量member variable):方法外部,类的内部定义的变量,从所于对象,生命周期伴随对象始终。(没有被static修饰),如果对象没有初始化,它会自动初始化成该类型的默认初始值。
实例变量默认初始值 | |
boolean | false |
char | /u0000(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
【示例2-3】成员变量
public class TextCsLoacd{
int a;//成员变量
public static void main(String[] args) {
System.out.println("aaa");
}
}
静态变量(类变量static variable):使用static定义。从属于类,生命周期伴随类的始终,丛类的加载到卸载。
【示例2-4】静态变量
public class TextCsLoacd{
static int a;//静态变量,从属于类
public static void main(String[] args) {
System.out.println("aaa");
}
}
常量(Constant):常量通常指一个固定的值
【示例1-1】
String name = "张三";//中"张三"就是常量
常量命名规范:
- 常量:大写字母和下划线:MAX_VALUE;
- 类名:首字母大写和驼峰原则:Man,GoodMan;
- 方法名:首字母小写和驼峰原则:run(),runRun();
在Java语言中,主要是利用关键字final来定义一个常量,常量一旦被初始化后不能再更改其值。
关键字final表示这个变量只能赋值一次,一旦被赋值之后就不能再更改,
在java中经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final 设置一个类常量。
【示例1-2】
public class TextCsLoacd {
public static final int NAME_AGE = 20;
public static void main(String[] args) {
}
}
需要注意:类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个类常量。而且,一个类常量被声明为public时,那么其他类的方法也可以使用这个类常量。