第一章
- 数据类型转换
- 数据类型范围从小到大排序(byte < char < short < int < long < float < double),布尔类型Boolean不能参与类型转换;
- 自动类型转换,范围小的数据类型向范围大的数据类型转换时使用;
- 强制类型转换,范围大的数据类型向范围小的数据类型转换时使用。
- 算数运算符
- 用来完成算数运算(如加减乘除计算等)
- ++,--运算符的使用
- ++,--前置(如++a),当参与运算时,变量a的值先自增1,然后用自增后的新值再参与运算;
- ++,--后置(如a++),当参与运算时,变量a先使用原有值参与运算符,变量a的值再自增1。
- 赋值运算符
- 用来完成数据的赋值(如 int a = 100;)
- +=,-,*=,/=这样的赋值运算符包含了一个强制转换的操作,会将左右两边运算后的结果,强制类型转换后赋值给左边
int n = 10;
byte by = 20;
by += n; // 运算完毕后,by的值为byte类型30, 相当于代码 by = (byte)(by + n);
- 比较运算符
- 用来比较数据的大小(如 3>4),比较运算符也称为条件运算符。
- 比较后的结果为布尔类型Boolean的值
- “==”两个等号代表比较是否相等,“=”一个等号代表赋值。
- 逻辑运算符
- 逻辑与& 和逻辑短路与&&:代表着并且的意思,左右两边都要条件成立,结果才为true;
- 逻辑或| 和逻辑短路或||:代表着或者的意思,左边两边有一个条件成立,结果就为true;
- 逻辑非!:代表着相反的意思,原先是false,结果就为true;原先是ture,结果就为false;
- 逻辑异或^: 左右两边条件结果相同,结果就为false,左右两边条件结果不同,结果就为true;
- 三元运算符
- 根据判断条件运算结果,执行不同的表达式值;条件为true,执行表达式1,否则,执行表达式2。
第二章
- 选择结构 if
- 方式1:
格式:
if(条件表达式) {
语句体;
}
执行流程:
如果条件表达式值为true, 执行语句体
如果条件表达式值为false,不执行语句体
-
- 方式2:
格式:
if(条件表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
如果条件表达式值为true, 执行语句体1
如果条件表达式值为fales,执行语句体2
-
- 方式3:
格式:
if(条件表达式1) {
语句体1;
} else if (条件表达式2) {
语句体2;
} else if (条件表达式n...) {
语句体n...
}
...
else {
语句体n+1;
}
执行流程:
哪一个条件表达式成立,执行对应的语句体,
如果所有的条件表达式都不成立,执行最后else中的语句体
-
- 注意事项:
1,条件表达式无论是简单还是复杂,结果都是boolean类型的值
2, 如果语句体只有一条语句,大括号可以省略,
如果是多条语句,大括号不能省略,建议什么时候都写上大括号
- 循环语句For
- 格式:
for (初始化表达式;条件表达式; 控制条件表达式) {
语句体;
}
-
- 执行流程:
1,初始化表达式;
2,条件表达式
如果结果为true, 执行语句体
如果结果为flase, 循环结束
3, 当语句体执行后, 执行控制条件表达式
4,接下来,回到第二步, 直到条件表达式为false 循环结束
- 循环语句 while
- 格式:
初始化表达式;
while (条件表达式) {
语句体;
控制条件表达式;
}
-
- 执行流程;
1,初始化表达式;
2,条件表达式
如果结果为true, 执行语句体
如果结果为flase, 循环结束
3, 当语句体执行后, 执行控制条件表达式
4,接下来,回到第二步, 直到条件表达式为false 循环结束跳转语句(break、continue)
- 循环语句 do...while
- 格式:
初始化表达式;
do {
语句体;
控制条件表达式;
} while (条件表达式);
-
- 执行流程:
1,初始化表达式;
2, 执行语句体
3, 执行控制条件表达式
4, 执行条件表达式,
如果结果为true, 继续执行语句体
如果结果为false, 循环结束
- 跳转控制语句
break; 跳出循环
continue; 结束本次循环
- Scanner类
- 获取键盘录入的数据,对获取数据的具体操作进行了封装,只需要调用方法,即可得到键盘录入的数据。
- 常用的方法
public int nextInt():获取键盘录入的数据,返回int类型值
public String next():获取键盘录入的数据,返回String类型值
- Random类:随机数类,用来产生多种类型的随机数
- 方法:
public int nextInt(int n) 返回一个,在 0(包括)和指定值(不包括)之间int随机数
第四章
- 数组
- 它是一个用来存储同一个数据类型多个元素的一个容器(数组长度是固定的,数组中存储的元素的数据类型要求一致)
- 格式:
格式1:
数据类型[] 数组名 = new 数据类型[数组长度];
格式2:
数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2,..};
格式3:
数据类型[] 数组名 = {元素值1,元素值2,..};
-
- 数组操作的常见问题:
NullPointerException: 空指针异常
ArrayIndexOutOfBoundsException: 数组越界异常
- 二维数组:
- 它是一个包含多个一维数组的数组
- 特点:二维数组中的每个元素都是一个一维数组
- 格式:
格式1:
数据类型[][] 数组名 = new 数据类型[m][n];
m: 代表二维数组中一维数组的个数
n: 代表每个一维数组中元素的个数
格式2:
数据类型[][] 数组名 = new 数据类型[m][];
m: 代表二维数组中一维数组的个数
每一个一维数组通过赋值来确定数组长度
格式3:
数据类型[][] 数组名 = {{元素值1,元素值2,..},{元素值1,元素值2,..},..};
第五章
- 方法
- 格式:
修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2, ...) {
方法体;
return 返回值;
}
-
- 方法使用的注意事项:
1,方法不调用,自己不执行
2,方法中不能定义方法, 但是,方法中可以调用方法
3, 方法定义的位置在类中,其他方法的外面
4, 如果方法没有明确的返回值类型,使用'空'类型, void表示
5,void只能在方法返回值类型位置使用,不能作为 普通的数据类型使用
6, 如果方法返回值类型为void类型,可以省略 return ;
-
- 方法调用方式:
有明确返回值类型的方法调用方式:
1,单独调用
2,输出调用
3,赋值调用
没有明确返回值类型的方法调用方式:
- 单独调用
- 方法重载:
方法重载,在同一个类中,出现了多个同名的方法,他们的参数列表不同 (参数列表的个数不同,参数列表的数据类型不同,参数列表的顺序不同)。
方法重载特点:
与方法的返回值类型无关,与方法的参数名无关,只看方法名与参数列表;
方法重载,是通过JVM来完成同名方法的调用的,通过参数列表来决定调用的是哪一个方法。
第六章
- 引用数据类型(类)
- 类的类型为两种:
- 第一种,Java为我们提供好的类,如Scanner类,Scanner类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。
- 第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。
- 创建类的格式
- 类的类型为两种:
public class 类名 {
//可以定义属性
//也可以定义方法
}
-
- 使用类的格式:
类名 变量名 = new 类名();
-
- 使用类中的属性与方法格式
使用属性: 变量名.属性
使用方法: 变量名.方法()
- ArrayList集合
- 它属于引用数据类型(类)。我们可以看作一个长度可变的数组。
- 创建集合的方式
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
-
- 集合中的常用方法
- boolean add(Object obj)
- Object get(int index)
- int size()
- boolean add(int index, Object obj)
- Object set(int index, Object obj)
- Object remove(int index)
- void clear()
- 集合中的常用方法