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

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

参考资料

原文地址:https://www.cnblogs.com/20145120hxx/p/5375605.html