20155206 2016-2017-2 《Java程序设计》第6周学习总结
20155206 2016-2017-2 《Java程序设计》第6周学习总结
教材学习内容总结
-
串流设计
流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的。
Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。
InputStream、OutStream提供串流基本操作,如果想要为输入/输出的数据做加工处理,则可以使用打包器类。常用的打包器具备缓冲区作用的BufferedOutputStream、BufferedInputStream,具备数据转换处理的DataInputStream、DataOutputStream,具备对象串行化能力的ObjectInputStream、ObjectOutputStream等。
在进行InputStream与OutStream的相关操作时若发生错误,会抛出java.io.IOException异常,在dump()方法上声明throws,由调用dump()方法的客户端处理。 -
输入输出重定向:setIn,setOut,setErr
-
BufferedInputStream与BufferedOutputStre- am: 内部提供缓冲,提高效率
-
线程与并行API:
1:在调用Thread实例start()方法后,基本状态为可执行(Runnable)、被阻断(Blocked)、执行中(Running)。
2:如果A线程正在运行,流程中允许B线程加入,等到B线程执行完毕后再继续A线程流程,则可以使用join()方法完成这个需求。
3:线程有其优先权,可使用Thread的setPriority()方法设定优先权,可设定值为1到10,默认是5,超出1到10外的设定值会抛出IllegalArgumentException。数字越大优先权越高,排班器越优先排入CPU,如果优先权相同,则输流执行。
教材学习中的问题和解决过程
- 问题:可通过wait()、notify()与notifyAll()三个方法来控制线程释放对象的锁定或通知线程参与锁定竞争,那么三个方法有什么区别?
- 解决方案:
wait - wait() 是无限期(一直)等待,直到其它线程调用notify或notifyAll方法唤醒当前的线程
notify - 只唤醒一个等待(对象的)线程并使该线程开始执行
notifyAll - 唤醒所有等待(对象的)线程,哪一个线程将会第一个处理取决于操作系统的实现。
代码调试中的问题和解决过程
代码托管
上周考试错题总结
- 9.实现了set接口类是哪一项(B)
A. ArrayList
B. Hashset
C. HashTable
D. Collection
结对及互评
评分标准
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
代码调试中的问题和解决过程, 一个问题加1分
-
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
-
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
-
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评过的同学博客和代码
学习进度条
| 第六周 | 300/300 | 1/1 | 24/23 | |