1.File类可以完成对文件、目录的操作,新建、删除、重命名文件、目录等,但不能访问文件本身的内容,访问文件本身内容需要使用输入输出流,对于Java来说文件和目录都是一个概念。
2.Window的路径分隔符使用反斜线(\),而Java的程序中反斜线表示转义字符,所以如果要使用反斜线应该用两条线(\\),或者只是用正斜线(/)。
3.字节流一InputStream和OutStream作为基类,字节流的最小数据单元是8位,字符流的最小 数据单元是16位,字符流则以Reader和Writer作为基类。
4.使用处理流的一个明显好处是:只要使用相同的处理流,程序就可以采用完全相同的输入输出代码来访问不同数据源,随处理流包装节点流的改变,程序实际所访问的数据源也相应发生改变。这是一种典型的装饰器设计模式。
5.使用Java的IO流执行输出时,必须要关闭输出流,以保证程序正常。
6.由于PrintStream类的输出功能非常强大,通常如果我们要输出文本内容,应该使用处理流PrintStream来包装OutStream后进行输出。包装方法:
//创建字节流
FileOutStream fos=new FileOutputStream(“t.txt”);
//进行包装
Ps=new PrintStream(fos);
7.字节流、字符流的使用规则:如果输入输出的内容是文本内容使用字符流,如果进行输入输出二进制内容使用字符流。
8.InputStream和Reader都为抽象类,本身不能创建实例,但是它们分出有一个用于读取文件的输入流:FileInputStream和FileReader。
9.线程实现的两种方式:第一种是继承Thread类,重写其run方法。第二种是实现Runnable接口,实现run方法。
10.我们将希望的线程执行的代码放在run方法里,通过start的方法来启动线程,start方法首先为系统准备好资源,然后在调用run方法。当某个类继承了Thread类,那么就叫做线程类。
11.线程的停止是不可以使用stop方法的,一般设置一个变量,在run方法中时一个循环,每次检查这个变量,如果满足条件继续执行,否则停止线程。
12.Java中的每一个线程都有一个锁(lock)或监视器(monitor),当访问某个对象的synchronized方法时,表示对该对象上锁,任何其他线程都无法访问该对象的synchronized方法,直到这个线程执行完毕后,或者抛出异常后,表示对该对象释放锁,其他对象才可以访问该对象的synchronized方法。
13.如果某个synchronized方法是static的,那么线程在访问方法时,它锁的并不是synchronized方法所在的对象,而是synchronized方法所在对象所对应的class对象,因为无论一个类有多少个对象,这些对象会对应唯一一个class对象,因此当线程分别访问同一个类的两个对象的两个static,synchronized方法时,他们的执行也是顺序的,也就是说一个线程先执行方法,执行完毕后另一个线程才开始执行。
14.synchronized块:写法:
synchronized(object){
}表示在执行的时候对object对象上锁。
15.synchronized方法是一种粗粒度的并发控制,某一时刻,只能有一个线程执行该synchronized方法,synchronized块则是一种细粒度的并发控制,只会将块中的代码同步,位于方法内、synchronized块之外的代码是可以被多个线程同时访问的。Synchronized里的数据必须是private类型的。
16.在项目中使用synchronized有时候是存在问题的,如果这个项目比较耗时,项目中涉及算法并且存在并发问题,那么当一个线程在执行时,其他线程就必须等待,一个线程执行的时间较长;比如20秒,那么下一个线程就得等待20秒,再下一个就得等待40秒,以此类推,最后一个线程会等待很久。这时就需要使用wait()和notify()方法这两个方法必须都在synchronized修饰的方法里同时使用。
17.wait和notify方法都是定义在Object类里的,Object类里的各个方法都是非常有用的,而且这两个方法都是final的,所以可以被所以的java类继承,但是无法重写,这两个方法在使用线程应该已经获得了对象的锁,因此对这两个方法的调用要放在synchronized方法或块中,当线程执行wait方法时,它会释放掉对象的锁。
18.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34818.html