一:数组
- 数组的定义
- 数组的遍历
- 创建数组的方式
(1)
(2)
- 数组的内存
- 数组与函数的联合使用
- 值传递和址传递
值传递:方法里面不可以控制控制外面的数组
址传递:方法里面可以控制外面的数组 精髓:是否让两个或多个数组指向同一地址
- 址传递的注意点
- 二维数组定义
- 二维数组的遍历与创建
- Arrays类
- 数组的扩容
- 字符串和字符数组的相互转变
二:排序
- 种类
冒泡 选择 希尔 快排 归并 插入 堆排 桶排
- 时间复杂度和空间复杂度
- 冒泡排序
- 选择排序
三:查找
- 查找的定义
- 二分查找
四:面向对象
- 面向对象三要素
- 理解面向对象
- 面向对象的特点
- 面向对象与面向过程的总结
- 类与面向对象的关系
- 类的定义
- 创建对象
数组就是特殊的对象
- 对象的内存
- 多引用指向同一对象
- 匿名对象(只想用一次的对象,无引用指向的对象就是匿名对象)
小注意点:
当一个对象无引用指向时gc会自动回收(gc回收主要是堆内存中进行)
- static修饰成员的功能
通过引用调用静态的成员会报警告,通过类名调用静态成员,通过类名不能调用非静态成员,静态成员放在静态方法区,整个系统都会共享这个变量
- 成员变量特点
- 成员变量与局部变量的区别
- 静态成员与非静态成员的区别
- 内存展示static的成员
类调用静态成员因为字节码文件是一个对象,字节码文件出现的早,new出的对象出现的晚,所以出现时间晚的可以调用出现时间早的,所以可以直接用类名调用静态成员而不可用类名调用非静态成员
当方法中要用非静态成员变量时,要保证方法是非静态的(也是用创建时间早晚来解释)
static总结:
- 构造方法与他的创建和基本构成
- 使用构造方法的注意点
- this的使用
this总结
- 构造代码块与静态代码块
- 构造代码块
new一个对象的时候总是先执行构造代码块,再执行构造函数,但是有一点需要注意构造代码块不是在构造函数之前运行的,它是依托构造函数执行的
构造代码块的作用:
1.初始化实例变量
如果一个类中有若干个构造函数,这些构造函数都需要对实例变量进行初始化,如果我们直接在构造函数中实例化,必定会产生代码的冗余,繁琐和可读性差,我们可以利用构造代码块来实现,这是利用编译器会将构造代码块添加到每个构造函数中的特性
2.初始化实例环境
一个对象必须在适当的场景下才能存在,如果没有适当的场景,则就需要在创建对象时创建此场景。我们可以利用构造代码块来创建此场景,尤其是该场景的创建过程较为复杂。构造代码会在构造函数之前执行。
- 静态代码块、构造代码块、构造函数执行顺序
1、 静态代码块,它是随着类的加载而被执行,只要类被加载了就会执行,而且只会加载一次,主要用于给类进行初始化。
2、 构造代码块,每创建一个对象时就会执行一次,且优先于构造函数,主要用于初始化不同对象共性的初始化内容和初始化实例环境。
3、 构造函数,每创建一个对象时就会执行一次。同时构造函数是给特定对象进行初始化,而构造代码是给所有对象进行初始化,作用区域不同。
(1)封装
- 定义
- 脏数据
- public private proteced 默认的区别
- get和set方法(按照规则生成主要是用于JavaBean中属性的)
(2)继承
继承中子类与父类出现同名的属性,父类的会被覆盖掉
- 继承调用方法
- 重写
重写的总结: 1:方法的签名相同,方法体不同
2:子类方法不能缩小父类方法的访问权限
3:子类方法不能抛出比父类方法更多的异常
4:存在于父子类中
5:方法被定义为final不能被重写
- super
super总结
- 构造方法在继承中的使用
(3)多态
一种事物的多种形态,继承是多态的前提
父类的引用指向子类的对象
多态 (向上造型): 父类引用不可以调用子类独有的方法
- 重载
重载是让类以统一的方式处理不同类型数据的一种手段,多个同名函数同时存在,具有不同的参数个数/类型。
重载是一个类中多态性的一种表现
重载的总结: 1:参数类型、个数、顺序至少有一个不同
2:不能重载只有返回值不同的方法名
3:存在于父类和子类、同类中
4:对于继承来说,如果某一方法在父类中的访问权限是private,那么就不能在子类对其进行重载。
如果定义了只是定义一个新方法,不会达到重载的效果。
- 转型
<转型指的是引用 例如new Student() 引用是Person,相对new出的对象而言引用是向上的所以是向上转型,编译阶段只考虑前面的引用>
- instanceof
instanceof的前后必须有继承关系