第二十五天
单列模式
单例在内存中只有一个对象
单例分为饿汉和懒汉式
饿汉单例不会出现问题
class Student{ private static Student s = new Studeng(); private Student(){} public static Student getInstance(){ return s; } }
懒汉式单例有可能出现线程安全问题
class Teacher{ private static Teacher t ; private Teacher(){} publicc static Teacher getInstance(){ if(t == null){ t = new Teacher(); return t ; } return t ; } }
工厂方法模式
工厂方法模式提供了一个工厂接口,提供的一些创建相关的类型实例,具体的创建实例动作由工厂类来完成,利用多态来实现.
abstract class Animal{}
class cat extends Animal{}
class dog extends Animal{}
interface Factory{
Animal createAnimal();
}
class dogFactory implements Factory{
public Animal creatAnimal(){
return new dog();
}
}
class catFactory implements Factory{
public Animal creatAnimal(){
return new cat();
}
}
File内方法
publiv boolean canRead()是否可读
public boolean canWrite()是否可写
public boolean exists()是否存在
public boolean isFile()是否文件夹
public boolean isDirectory()是否文件夹
public boolean isHidden()是否隐藏
高级获取功能
public long length()
public String getName()琥珀去抽象路径名称所表示的文件.
public File[] listFiles()获取某个目录下所有的文件以及文件夹数组.
递归
方法调用方法本身的现象称为递归,
首先得有一个方法
其次这个方法得有结束的条件
还有一定的规律
IO流的分类
按流的方向:
输出流和输入流
按类型分:
字节和字符流:字节先出现,后面再有字符流.
字节输入流:InputStream:表示输入字节流的所有类的超类
BufferedInputStream高效字节输入流,
字节输出流:OutputStream:表示
字符输入流:write表示输入字符流的抽象类
字符输出流:read表示输出字符流的抽象类
字节流读写复制
FileInputStream I = new FileInputStream("Demo.java);
FileOutputStream O = new FileOutputStream("Copy.java");
int by = 0 ;
while((by = I.read()) != -1){
O.write(by);
}
I.close();
O.close();