1.前一天重点内容复习
静态代理
功能:就是让代理角色帮助真实角色完成一个功能,对真实角色功能增强
使用:真实角色类和代理角色类都必须实现同一个接口
等待唤醒机制
当利用生产者消费者模式去解决死锁问题时,生产者生产出数据,等待消费者去消费完数据才能继续生产
如何实现同步机制
使用synchronized同步代码块或者同步方法
使用volatile关键字
使用wait()和notify()
使用锁对象lock
创建线程的方式
继承Thread类,重写Thread的run方法
实现Runnable接口,重写Runnable接口的run方法
线程池创建
线程状态
新建,运行,阻塞,死死等待,超时等待,终止
2.定时器
定时器类:java.util.Timer
作用:使用定时器完成定时任务,任务可以安排一次执行,或者定期重复执行
构造方法:Timer()
成员方法:
public void cancel():终止此计时器,丢弃任何当前计划的任务
public void schedule(TimerTask task , Date time)
第一个参数为计时器一次性或者重复执行的任务,为一个抽象类
第二个参数为执行任务的时间
public void schedule(TimerTask task , long dalay):多少毫秒后执行一次任务
public void schedule(TimerTask task , long dalay , long period):经过dalay时间毫秒后,执行这个task任务,每经过period时间间隔,重复执行任务
3.面向对象设计原则
单一职责原则,也称为低耦合,高内聚原则
开闭原则,核心思想为一个对象对扩展开放,对修改关闭
里氏替换原则,核心思想为任何父类出现的地方都可以使用子类来代替
依赖注入原则,所有的类应该依赖于抽象类和接口,不应该依赖具体实现类
接口分离原则,一个接口应该只提供一种对外功能
迪米特原则,一个对象应当对其他对象尽可能少的了解
4.设计模式分类
创建型模式:以对象创建方式不同来划分
简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式
结构型模式:以对象的组成不同来划分
外观模式,适配器模式,代理模式,装饰模式,桥接模式,组合模式,享元模式
行为型模式:以对象的行为来划分
模板方法模式,观察者模式,状态模式,职责链模式,命令模式,访问者模式,策略模式,备忘录模式,迭代器模式,解释器模式
5.简单工厂模式
介绍:就是定义一个具体的工厂类,专门创建一些类的实例
优点:客户不需要负责对象创建
缺点:如果有新的对象增加,且创建方式不同,则需要修改工厂类代码
6.工厂方法模式
介绍:抽象工厂负责定义和创建接口,具体对象的创建工作由继承抽象工厂的具体类实现
优点:客户端不需要自己创建对象,如果对象类型增加,只需要增加一个具体类和一个具体工厂类即可,不影响原来代码
缺点:需要编写代码,工作量大
7.单例设计模式
介绍:确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供
优点:内存中只有一个对象,节省内存空间
缺点:没有抽象层,扩展功能难,只有一个对象要完成所有类的工作,职责过重,违反单一职责原则
8.File类
作用:表示文件或者文件夹的抽象路径形式
构造方法:
File(String pathname)
参数为文件路径加上文件名称
File(File parent , String child)
参数1表示文件夹路径,参数2表示文件夹里面的子文件
File(String parent , String child)
参数1表示文件夹路径,参数2表示文件夹里面的子文件
基本功能:
public boolean createNewFile() throws IOException:创建文件
public boolean mkdir():创建目录,不存在创建,存在返回false
public boolean mkdirs():创建多个目录,如果父母录不存在,自动创建父类以及里面的子目录
带盘符的具体路径为绝对路径,不带盘符为相对路径,在当前文件夹下创建
public boolean delete():删除文件夹或者文件
判断功能
public boolean exists():file所表示的路径是否存在
public boolean isFile():是否是文件
public boolean isDirectory():是否是目录
public long length():获取长度
9.流的划分
按流的方向划分
输入流
输出流
按流的类型划分
字节流
字符流
按流的类型及方向划分
字节输入流 InputStream
字节输出流 OutputStream
字符输入流 Reader
字符输出流 Writer