20145229吴姗珊 《Java程序设计》两天小总结

20145229吴姗珊 《Java程序设计》两天小总结

教材学习内容总结

第十章 输入输出

1.java将输入输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象
2.从应用程序角度来看,如果要将数据从来源取出,可以使用输入串流(java.io.InputStream 实例),如果要将数据写入目的地,可以使用输出串流
3.串流继承架构
System.in:文本模式下取得整行用户输入
System.err:标准错误输出串流,用来立即显示错误信息
System.setErr:重新指定标准错误输出串流
setIn():使用 setIn() 方法指定 InputStream 实例,重新指定标准输入来源
setOut():使用 setOut() 方法指定 PrintStream 实例,将结果输出至指定的目的地
4.ObjectInputStream与ObjectOutputStream:ObjectInputStream 提供 readObject() 方法将数据读入为对象,ObjectOutputStream 提供 writeObject() 方法将对象写至目的地
5.Thread:如果想要加装主线程,就要创建 Thread 实例,要启动额外的主线程就是调用 Thread 实例的 start() 方法
6.在 java 中,任何线程可执行的流程都要定义在 Runnable 的 run() 方法,Thread 类本身也操作了 Runnable 接口在 java 中,任何线程可执行的流程都要定义在 Runnable 的 run() 方法,Thread 类本身也操作了 Runnable 接口
7.ynchronized 要求达到的所标示区块的互斥性与可见性,互斥性是指 synchronized 区块同时间只能有一个线程,可见性是指线程离开 synchronized 区块后,另一线程接触到的就是上一线程改变后的对象状态

第十一章 线程与并行API

1.通过创建Thread实例来执行Runnable实例定义的> run方法可以实现多个线程。
2.继承Thread类也可以进行多个进程,但没有Runnable的弹性好,运用Lambda表达式也可以简化程序。
3.线程生命周期:Daemon:在所有的非Daemon线程结束时,JVM就会自动终止
4.synchronized&&volatile:线程存取同一对象相同资源时可能会引发竞速情况
5.CopyOnWriteArrayList操作了List接口,这个类的实例在写入操作是,内部会建立新数组,并复制原有数组索引的参考,然后在新数组上进行写入操作,写入完成后,再将内部原参考旧数组的变量参考至新数组
6.ConcurrentMap是Map的子接口,其定义了putIfAbsent()、remove()、replace()等方法。这些方法都是原子操作
7.ConcurrentHashMap是ConcurrentMap的操作类,ConcurrentNavigableMap是ConcurrentMap的子接口,其操作类为ConcurrentSkipListMap,可视为支持并行操作的TreeMap版本
8.CopyOnWriteArraySet操作了Set接口,与CopyOnWriteArrayList相似

原文地址:https://www.cnblogs.com/20145229ss/p/5385003.html