20145305 《Java程序设计》第6周学习总结

时间:2021-10-14 18:52:36

教材学习内容总结

1.输入串流代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutputStream实例

2.InputStream与OutputStream操作了java.io.Closeable接口,父接口为java.lang.AutoCloseable接口,在不使用InputStream与OutputStream时,必须使用close()方法关闭串流

3.FileInputStream是InputStream的子类,可以指定文件名创建实例,创建文档开启可用来读取数据,FileOutputStream是OutputStream的子类,可以指定文件名创建实例,创建文档开启可用来写出数据;不使用时都要用close()方法关闭文档

4.ByteArrayInputStream是InputStream的子类,可以指定byte数组创建实例,创建可将byte数组当作数据源进行读取,ByteArrayOutputStream是OutputStream的子类,可以指定byte数组创建实例,创建可将byte数组当作目的地写出数据

5.常用打包器:
缓冲区作用:BufferedInputStream、BufferedOutputStream
数据转换处理作用:DataInputStream、DataOnputStream
对象串行化能力:ObjectInputStream、ObjectOnputStream

6.字符数据的读取:java.io.Reader
字符数据的写入:java.io.Writer

7.FileReader、FileWirter默认会使用操作系统默认编码来做字符转换

8.可以指定-Dfile.encoding来制定FileReader、FileWirter所使用的编码

9.使用InputStreamReader、OnputStreamWriter对串流数据打包
BufferedReader、BufferedWriter可对Reader、Writer提供缓冲区作用
PrintWriter除了可以对OutputStream打包,还可对Writer打包,提供print()、println()、format()等方法

10.要让目前流程暂停指定时间,可以使用java.lang.Thread的静态sleep(),必须处理java.lang.InterruptedException

11.在main()以外独立设计流程,可以撰写类操作java.lang.Runnable

12.一个Thread被标示为Daemon线程,在所有的非Daemon线程都结束时,JVM自动就会终止

13.在调用Thread实例start()方法后,基本状态为可执行、被阻断、执行中

14.线程有优先权,可使用Thread的setPriority()方法设定优先权

15.数字越大优先权越高,排班器越优先排入CPU,优先权相同,则输流执行

16.进入Dead的线程不可以再次调用start()方法

17.Thread类上定义有stop()方法,被标示为Deprecated

18.线程存取同一对象相同资源时可能引发竞速情况

19.每个对象都会有个内部锁定(监控锁定)

20.Java的synchronized提供的是可重入同步

教材学习中的问题和解决过程

教材P340页解决竞速情况的时候,在加上synchronized关键字之后就没有错误是为什么?

本周代码托管截图

20145305 《Java程序设计》第6周学习总结

20145305 《Java程序设计》第6周学习总结

20145305 《Java程序设计》第6周学习总结

20145305 《Java程序设计》第6周学习总结

20145305 《Java程序设计》第6周学习总结

其他(感悟、思考等,可选)

本周的学习是了解了输入与输出,线程和并行API,但是线程方面只是先粗略的看了一遍,大概了解了一下,下周再继续

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时 基本掌握JAVA
第一周 200/200 1/2 20/20 了解基本的JAVA
第二周 250/450 2/4 20/40 了解基础语法
第三周 500/950 1/5 20/60 了解JAVA语法核心
第四周 869/1819 1/6 30/90 了解继承、接口、多态的知识
第五周 918/2737 1/7 25/115 了解了很多异常处理的知识
第六周 1474/4211 2/9 30/ 145 了解输入输出、线程

参考资料