标识符
什么是标识符,可以理解为只要是可以自己起名字的地方就叫做标识符。
标识符的命名规则
(1)由阿拉伯数字,英文字母,下划线_,$组成
(2)数字不可以开头
(3)不可以使用关键字和保留字,但可以包含关键字和保留字
(4)长度没有限制,区分大小写
(5)命名最好要见名知意
变量
变量的概念
(1)内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
(2)变量声明的格式为:数据类型 变量名 = 变量值
数据类型
分类:可以分为基本数据类型和引用数据类型
基本数据类型
(1)整型:byte,short,int,long
(2)浮点型:float,double
(3)字符型:char
(4)布尔类型:boolean
引用数据类型
类(class)
数组(array)
接口(interface)
枚举(enum)
注解(annotation)
记录(record)
基本数据类型的使用
整数型:
类型 | 占用存储空间 | 数据的范围 |
---|---|---|
byte | 1字节 | -128 — 127 |
short | 2字节 | -2^15 — 2^15 - 1 |
int | 4字节 | -2^31 — 2^31 - 1 |
long | 8字节 | -2^63 — 2^63 - 1 |
定义long类型的变量,赋值时需要以L或者l作为后缀
例如:
public class index {
public static void main(String[] args) {
//一般用大写
long l = 123456789L;
}
}
java中的整型变量声明默认为:int
在开发中,定义整型变量时,没有特殊情况,通常都声明为int类型。
浮点类型:
类型 | 占用存储空间 |
数据范围 |
---|---|---|
单精度float | 4字节 | -3.403E38 — 3.403E38 |
双精度 | 8字节 | -1.798E308 — 1.798E308 |
java中的浮点型变量声明默认为:double
定义float,double类型的变量,赋值时需要以F或者f,D或者d作为后缀
例如:
public class index {
public static void main(String[] args) {
//一般用大写
float f = 1.12342342F;
double d = 2.345531342334D;
}
}
在开发中,定义浮点型变量时,没有特殊情况,通常都声明为double类型,精度更高。
字符类型
占用两个字节。
格式为:char c = 'A'; 使用一对''表示,内部有且只能有一个字符。
牢记Ascll码的值:A = 65 a = 97都加上25就是到z的数值范围,0的Ascll值为48
例如:
public class index {
public static void main(String[] args) {
char c1 = 97;
System.out.println(c1);
char c2 = 48;
System.out.println(c2);
char c3 = 65;
System.out.println(c3);
}
}
结果为:a,0,A
布尔类型boolean
只有两个值:true(真),false(假),常使用在流程控制语句中
类型提升
自动类型提升
这里要提到,可以进行运算的基本数据类型有7种,不包含boolean。
提升规则:当容量小的变量与容量大的变量做运算时,结果会自动转换为容量大的数据类型。
容量就是指取值范围的大小。注意:float比long的范围要大。
自动提示的规则为:byte -> short -> int -> long -> float -> double
char -> int -> long -> float -> double
例如:
public class index {
public static void main(String[] args) {
byte b = 10;
short s = 20;
int i = 20;
char c = 'A';
//结果转换为int类型
int sum = b + i;
System.out.println(sum);
//注意:byte与short,char或者与本身之间做运算时,会自动把结果转换为int类型。
int i1 = b + s;
System.out.println(i1);
int i2 = c + d;
System.out.println(i2);
//123默认为整数int类型,自动类型提升为Long.
long l1 = 123;
//报错原因是因为,产出了int的取值范围,可加上L或者l变成long型扩大范围
long l2 = 123456789123;
//定义float类型的变量必须要加上F,因为浮点数默认为double类型,取值范围大的不可以自动提升为取值范围小的。
float f = 12.3F;
}
}
注意:取值范围为大的不可以自动转换为取值范围小的。
强制类型转换
规则:将取值范围大的转换为取值范围小的。
格式:数据类型 变量名 = (数据类型)变量值;
例如:
public class index {
public static void main(String[] args) {
int i = 10;
short s = (short)i;
}
}
注意:(1)浮点型转换为整数类型会损失小数点后面的数据
(2)转换的数据,超出被强制转换数据类型的取值范围,数据会发生错误,造成精度损失。
例如:
public class index {
public static void main(String[] args) {
float f = 12.3F;
int i = (int)f;
//运行结果为:12
System.out.println(i);
int i1 = 128;
byte s = (byte) i1;
//结果为-128
System.out.println(s);
}
}