1. 运算符优先级
2. 变量
2.1 是什么
可以更改的量,方便操作,可以重复使用
有名字的内存空间
2.2 能干什么
保存数据,操作数据
2.3 声明
数据类型 变量名 = 值;
基本类型
数值型
整数
byte,short,int,long
浮点
float,double
字符型
char
布尔型
boolean
引用类型
类,数组,接口
Byte b1 = 1;
Short s1 = 231;
Int i1 = 12;
Long l1 = 1123L;
Char c1 = 'a';
Double d1 = 2.4;
Float f1 = 2.5f;
Boolean b1 = false;
2.4 分类
静态变量 :
类体中使用static修饰
属于类级别变量,该类所有对象,值共享
成员变量 :
类体中没有static修饰
属于对象级别,对象之间变量值不共享
局部变量 : 方法中声明的变量
由于方法不调用不执行,调用才执行,并且执行完栈帧销毁,所以方法在栈内存是临时性的,所以局部变量也是具有临时性的,不适合长期存储
另外局部变量的作用域只能在该方法中
局部变量没有默认值,而静态变量和成员变量有默认值
2.5 调用
静态变量 : 类名.静态变量名 , 当前类中可以直接写变量名调用
成员变量 : 对象引用.成员变量名,在成员方法中,调用当前对象中的成员变量可以直接写变量名调用
局部变量 : 只能在当前方法中,直接写局部变量名进行调用
如果局部变量和静态变量/成员变量同名,则局部变量优先级大于静态和成员
在方法中,可以使用类名 区分同名的静态变量和局部变量
在成员方法中,可以使用this.区分同名的局部变量和成员变量
3. 逻辑运算
&& 和 & : 两边都是true 结果才是true
&& : 短路与,加入第一个条件为false,则第二个条件不执行
& : 不管第一个条件是否为false,第二个条件依然会执行
|| 和 | : 两边一个为真 结果就为真
|| : 短路或 , 如果第一个条件就为true,则第二个条件不再执行
| : 不管第一个条件为false还是true,第二个条件都执行
4. 数组
4.1 是什么
数组是引用数据类型,并且数组是源自底层的数据结构,用来保存和处理多个数据值
用来保存多个相同类型的数据的集合 称为数组
并且数组存储方式是连续存储,并且每个元素有独一无二的下标来标识,且数组长度一旦确定不能更改
所以数组在查询和更改的情况,效率极高,但是添加和删除效率较低,因为长度不能更改,想要添加或者
删除数据,必须先创建一个新数组.,然后把原数组中数据复制进去,在复制的过程中进行添加和删除操作
另外 数组还有一个length属性 保存数组的长度
4.2 应用场景
用来保存多个数据,并且查询和更改操作较多的情况下,推荐使用数组
4.3 声明
静态声明 : 已知数组中每个元素内容的情况下使用静态声明
数据类型[] 变量名 = {类型值1,类型值2...};
数据类型[] 变量名 = new 数据类型[]{类型值1,类型值2...};
动态声明 : 在不知道数组中每个元素内容的情况下,使用动态声明
数据类型[] 变量名 = new 数据类型[长度];
4.4 操作
查询
数组[下标]
更改
数组[下标]=值
遍历
For(int i = 0; i<数组.length; i++){
数组[i]
}
4.5 插入复制
参考代码见2022.1.5
4.6 冒泡排序
相邻的元素进行比较,如果前面大于后面,就交换位置
比较一轮之后 最后一个一定是最大的
对以上步骤重复操作
4.7 选择排序
假设当前这个是最小的
用该数据依次和后面所有数据进行比较,如果发现比当前元素小,就交换下标
比较一轮结束后,当前保存的一定是最小元素的下标
5 7 3 6 9
3 7 5 6 9
3 5 7 6 9
3 5 6 7 9
Min =3
4.8 二分法查找
5. 面向对象
5.1 类和对象的关系
类 定义属性,描述物体的特征
对象 封装属性值,表示具体的个体