Java变量
一、变量的命名
——标识符
标识符由数字、字母、下划线_、美元符$组成,但不能以数字开头。
标识符对字母大小写敏感。
标识符无长度限制。
不能以
/*合法的标识符:*/
int amount = 17;int $apple = 8;int _index = 3;int 身高 = 180;/*不合法的标识符:*/
int float = 3.14; //不能使用关键字
int #Index = 2; //不能使用#
int 3a = 9; //不能以数字开头
二、变量的数据类型
——基本数据类型、引用类型
三、变量的分类
——局部变量、成员变量、静态变量
(一)局部变量:在方法内或语句块中定义,生命周期从声明处开始到方法或语句块结束处。
★ 使用局部变量前必须先声明和初始化。
public classTestVarible {public static voidmain(String args[]) {
{int age; //age是局部变量,只属于本语句块
System.out.printf("age = %d", age); //编译出错, age没有初始化
}
age= 18; //编译出错, age没定义
}
}
(二)成员变量:在方法外部、类的内部定义的变量,生命周期伴随对象始终。
★ 声明成员变量时会自动初始化,默认初始值见下表:
默认初始值
数据类型
初始值
int
0
char
'\u0000'
double
0.0
boolean
false
public classTestVarible {int testValue; //成员变量, 初始值为0
}
(三)静态变量:使用static定义的变量,生命周期伴随类始终。
★ 声明静态变量时会自动初始化,默认初始值与成员变量相同。
public classTestVarible {static double score; //静态变量, score属于类, 初始值为0.0
boolean flag; //成员变量, flag属于对象, 初始值为false
public static voidmain(String args[]) {
{int age; //局部变量, age只属于本语句块
age = 17;
}int fighting = 88; //局部变量,fighting属于方法
}
}
四、变量、常变量
——声明、初始化
★ 常变量与变量的唯一区别是:常变量初始化后不可再改变。
数据类型 变量名; // 变量声明
final 数据类型 变量名; // 常变量声明
变量名 = 值; // 变量初始化
★ 初始化变量时,整数默认为int类型,浮点数默认为double类型。
五、基本数据类型
——boolean、byte、short、char、int、long、float、double
★ 低范围变量可赋值给高范围变量,超出范围时需加转换!
(一)整型:byte、short、int、long
1. 基本信息
数据类型
占用内存
表示范围
定义
byte
1字节
-128~127
-
short
2字节
-32768~32767
-
int
4字节
约21亿
-
long
8字节
-263~263-1
在末尾增加'L'或'l'
2. 表示形式
10进制:-
16进制:以0x或0X开头
8进制:以0开头
2进制:以0b或0B开头
public classTestVarible {public static voidmain(String args[]) {/*正确的声明和初始化*/
int a = 320000;int b = '对';long c =a;long d = 3200000000L; //数值超出21亿, 需要增加转换:在末尾加上"L"或"l"
/*非法的初始化*/
byte e = 128; //超出范围
unsigned int f = 200; //不存在unsigned
}
}
(二)浮点型:float、double
1. 基本信息
数据类型
占用内存
表示范围
定义
float
4字节
-3.403E38~3.403E38
在末尾增加'F'或'f'
double
8字节
-1.798E308~1.798E308
在末尾增加'D'或'd'
2. 表示形式
10进制:-
科学计数法:aEb或aeb (a为实数,b为整数)
public classTestVarible {public static voidmain(String args[]) {/*正确的声明和初始化*/
float a = 3.14F;float b = (int)6.89;float c = 0x0123; //0x0123=291, 在21亿范围内
/*非法的初始化*/
float d = 1e4; //编译错误, 1e4为double型
float e = 3.03d; //编译错误, 3.03d为double型
/*float型与double型最好不要进行比较*/
float m = 0.1f;double n = 0.1;
System.out.println(m==n); //输出为false
}
}
(三)字符型:char
1. 基本信息
char类型占2字节,使用Unicode编码形式,其表示范围是0~65535。
2. 表示形式
字符常量:'x'
16进制:'\uxxxx' (x在0~f范围内)
public classTestVarible {public static voidmain(String args[]) {/*正确的声明和初始化*/
char a = '步';char b = 24179;char c = '\u51e1';
System.out.printf("%c%c%c", a, b, c);/*非法的初始化*/
char d = '\uabcg'; //g超出0~f范围
int e = 'a';char f = e; //e为int型, 高于char类型
}
}
(四)布尔型:boolean
boolean类型占1位(1bit),只有true和false两个值。
【参考资料】:
变量的数据类型图片: