一、随堂复习
1.1 关键字、保留字
-
关键字:被Java赋予特殊含义的字符串。
-
官方规范中有50个关键字
-
true、false、null虽然不是关键字,但是可以当做关键字来看待。
-
-
保留字:goto 、 const
1.2 标识符
-
标识符:凡是可以自己命名的地方,都是标识符。
-
比如:类名、变量名、方法名、接口名、包名、常量名等
-
-
记住:标识符命名的规则(必须要遵守的,否则编译不通过)
-
> 由26个英文字母大小写,0-9 ,_或 $ 组成
> 数字不可以开头。
> 不可以使用关键字和保留字,但能包含关键字和保留字。
> Java中严格区分大小写,长度无限制。
> 标识符不能包含空格。 -
记住:标识符命名的规范(建议遵守。如果不遵守,编译和运行都能正常执行。只是容易被人鄙视)
> 包名:多单词组成时所有字母都小写:xxxyyyzzz。 例如:java.lang、com.atguigu.bean > 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 例如:HelloWorld,String,System等 > 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz 例如:age,name,bookName,main,binarySearch,getName > 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ 例如:MAX_VALUE,PI,DEFAULT_CAPACITY
-
“见名知意”
class IdentifierTest{
public static void main(String[] args){
int abc = 12;
int age = 12; //age :标识符
char gender = '男';
char c1 = '女';
//不推荐的写法
//int myage = 12;
//System.out.println(myage);
int myAge = 12;
}
public static void main1(String[] args){
}
}
class _a$bc{
}
/*
class 1abc{
}
*/
class Public{
}
class publicstatic{
}
class BiaoShiFuTest{
}
1.3 变量的基本使用(重点)
-
变量的理解:内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
-
变量的构成包含三个要素:数据类型、变量名、存储的值
-
Java中变量声明的格式:数据类型 变量名 = 变量值
class VariableTest {
public static void main(String[] args) {
//定义变量的方式1:
char gender; //过程1:变量的声明
gender = '男'; //过程2:变量的赋值(或初始化)
gender = '女';
//定义变量的方式2:声明与初始化合并
int age = 10;
System.out.println(age);
System.out.println("age = " + age);
System.out.println("gender = " + gender);
//在同一个作用域内,不能声明两个同名的变量
//char gender = '女';
gender = '男';
//由于number前没有声明类型,即当前number变量没有提前定义。所以编译不通过。
//number = 10;
byte b1 = 127;
//b1超出了byte的范围,编译不通过。
//b1 = 128;
}
public static void main123(String[] args) {
//System.out.println("gender = " + gender);
char gender = '女';
}
}
说明:
-
定义变量时,变量名要遵循标识符命名的规则和规范。
-
说明:
- ① 变量都有其作用域。变量只在作用域内是有效的,出了作用域就失效了。
- ② 在同一个作用域内,不能声明两个同名的变量
- ③ 定义好变量以后,就可以通过变量名的方式对变量进行调用和运算。
- ④ 变量值在赋值时,必须满足变量的数据类型,并且在数据类型有效的范围内变化。
1.4 基本数据类型变量的使用(重点)
1、Java中的变量按照数据类型来分类:
基本数据类型(8种): 整型:byte \ short \ int \ long 浮点型:float \ double 字符型:char 布尔型:boolean 引用数据类型: 类(class) 数组(array) 接口(interface) 枚举(enum) 注解(annotation) 记录(record)
测试整型和浮点型:
/* 测试整型和浮点型变量的使用 */ class VariableTest1 { public static void main(String[] args) { //1.测试整型变量的使用 // byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节) byte b1 = 12; byte b2 = 127; //编译不通过。因为超出了byte的存储范围 //byte b3 = 128; short s1 = 1234; int i1 = 123234123; //① 声明long类型变量时,需要提供后缀。后缀为'l'或'L' long l1 = 123123123L; //② 开发中,大家定义整型变量时,没有特殊情况的话,通常都声明为int类型。 //2.测试浮点类型变量的使用 //float \ double double d1 = 12.3; //① 声明long类型变量时,需要提供后缀。后缀为'f'或'F' float f1 = 12.3f; System.out.println("f1 = " + f1); //② 开发中,大家定义浮点型变量时,没有特殊情况的话,通常都声明为double类型,因为精度更高。 //③ float类型表数范围要大于long类型的表数范围。但是精度不高。 //测试浮点型变量的精度 //结论:通过测试发现浮点型变量的精度不高。如果在开发中,需要极高的精度,需要使用BigDecimal类替换浮点型变量。 //测试1 System.out.println(0.1 + 0.2); //测试2: float ff1 = 123123123f; float ff2 = ff1 + 1; System.out.println(ff1); System.out.println(ff2); System.out.println(ff1 == ff2); } }
1.5 基本数据类型变量间的运算规则(重点)
1.5.1 自动类型提升
/* 测试基本数据类型变量间的运算规则。 1. 这里提到可以做运算的基本数据类型有7种,不包含boolean类型。 2. 运算规则包括: ① 自动类型提升 ② 强制类型转换 3. 此VariableTest3.java用来测试自动类型提升 规则:当容量小的变量与容量大的变量做运算时,结果自动转换为容量大的数据类型。 byte 、short 、char ---> int ---> long ---> float ---> double 特别的:byte、short、char类型的变量之间做运算,结果为int类型。 说明:此时的容量小或大,并非指占用的内存空间的大小,而是指表示数据的范围的大小。 long(8字节) 、 float(4字节) */ class VariableTest3 { public static void main(String[] args) { int i1 = 10; int i2 = i1; long l1 = i1; float f1 = l1; byte b1 = 12; int i3 = b1 + i1; //编译不通过