20145120 《Java程序设计》第6周学习总结
教材学习内容总结
java.io.InputStream、java.io.OutputStream实例分别作为输入、输出串流的代表对象
不使用InputStream和OutputStream时要用close()方法关闭串流
InputStream的read()尝试读入byte数组长度的数据并返回实际读入的字节
OutputStream的write()方法可指定byte数组、数组索引、数据长度进行输出
尝试指定了classpath然而Copy还是不成功,时间有限,跳过了
System.in和System.out代表标准输入、输出,对应文本模式
标准输出可以重新导向至文档
System.err,标准错误输出流,用于立即显示错误信息
FileInputStream,FileOutputStream,指定文件名创建实例,一旦创建文档就开启,可读写数据,不用时要用close()关闭文档
byteArrayInputStream,byteArrayOutputStream类似上方,可操作byte数组
Scanner类可作为InputStream打包器
BufferedInputStream,BufferedOutputStream尽量读取足够多的数据到缓冲区操作,提高效率
DataInputStream,DataOutputStream
ObjectInputStream,ObjectOutputStream
java.io.Reader,java.io.Writer针对数据的读入写出,抽象数据来源与目的地,不使用时要用close()关闭
Java.lang.Runnable,独立设计线程,插入点在run()中
龟兔赛跑:
线程生命周期,若一个线程被标注为Daemon时,所以非Daemon线程结束后JVM就会关闭
然后我把setDaemon删掉了
Orz停不下来。。。
加回来之后却神奇特发现已经不能再Orz了,搞不懂啊
用setPriority()可设定线程优先权,可设定1到10,默认是5
线程完成run()之后就会进入Dead,Dead的线程不能在调用start()
每个对象都有个内部锁定(Intrinsic Lock),在方法标注synchronized,线程必须取得对象锁定才能开始
使用volatile
本周代码托管截图
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 1000行 | 16篇 | 300小时 | |
第一周 | 20/20 | 1/1 | 8/8 | |
第二周 | 71/91 | 1/2 | 9/17 | |
第三周 | 229/320 | 1/3 | 13/30 | |
第四周 | 280/600 | 1/4 | 16/46 | |
第五周 | 500/1100 | 1/5 | 18/64 | |
第六周 | 200/1300 | 2/7 | 12/76 |