教材学习内容总结
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关键字之后就没有错误是为什么?
本周代码托管截图
其他(感悟、思考等,可选)
本周的学习是了解了输入与输出,线程和并行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 | 了解输入输出、线程 |