• 20155211 2016-2017-2 《Java程序设计》第六周学习总结


    20155211 2016-2017-2 《Java程序设计》第六周学习总结

    教材学习内容总结

    第十章 输入/输出

    一、InputStream与OutputStream

    (一)串流设计的概念
    • 输入串流代表对象:java.io.InputStream
    • 输出串流代表对象:java.io.OutputStream
    (二)串流继承结构
    • 标准输入/输出:
    • 使用System的setIn(),重新指定标准输入来源。
    • 使用System的setOut(),将结果输出至指定目的地。
    (三)串流处理装饰器
    • BufferedInputStream与BufferedOutputStream: 提供内部缓冲区功能
    • DataInputStream与DataOutputStream:用来装饰InputStream等提供读取、写入Java基本数据类型的方法
    • ObjectInputStream与ObjectOutputStream:提供readObject()将数据读入为对象,writeObject()将对象写至目的地

    二、字符处理类

    (一)Reader与Writer继承架构
    • 针对字符读取:java.io.Reader类
    • 针对字符写入:java.io.Writer类
    (二)字符处理装饰器
    • InputStreamReader与OutputStreamWriter:对串流数据打包
    • BufferedReader与BufferedWriter:对Reader、Writer提供缓冲区
    • PrintWriter:对Writer进行打包

    第十一章 线程与并行API

    一、线程

    (一)线程简介
    • Java中,可以通过撰写类操作java.lang.Runnable接口,流程进入点操作在run()方法中,创建Thread实例来执行run()方法。
    (二)Thread与Runnable
    • 操作Runnable接口较有弹性,还有机会继承其他类。
    • 继承Thread通常是为了直接利用Thread中定义的一些方法。
    (三)线程生命周期
    • Daemon线程:所有非Daemon线程都结束时,JVM自动终止。
    • Thread基本状态图
    • Runnable:可执行
    • Blocked:被阻断
    • Running:执行中
    • 安插线程:使用join()可以将线程加入成为另一线程的流程中。
    • 停止线程:使用stop()会直接释放所有已锁定对象,可能使对象陷入无法预期状态。

    二、并行API

    (一)Lock、ReadWriteLock与Condition
    • 使用Lock
    • Lock接口主要操作类之一是ReentrantLock,可以达到syncharonized的作用。
      范例ArrayList
    • Lock还定义tryLock()方法。
    • 使用ReadWriteLock
    • ReadWriteLock接口定义了读取锁定与写入锁定行为
    • 使用StampedLock
    • StampedLock类可支持乐观读取
    • 使用Condition
    • Condition接口用来搭配Lock
    (二)使用Executor
    • java.util.concurrent.Executor接口可将Runnable的指定与实际执行分离。
    • 使用ThreadPoolExeecutor
    • 使用ScheduledThreadPoolExecutor
    • 使用ForkJoinPool

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

    代码调试中的问题和解决过程

    • 在调试p312页代码时,忽视了dump()后的throws而出错,后经调整改进

    代码托管


    上周考试错题总结

    上周考试出了些许差错。。

    结对及互评

    点评过的同学博客和代码

    • 本周结对学习情况

    • 20155235

    • 结对照片

    • 结对学习内容:
      一起阅读了教材,并对书上的部分代码进行讨论

    • 上周博客互评情况

    • 20155203

    • 20155223

    • 20145234

    • 20155209

    • 20155332

    • 结对互评 20155235

    • 基于评分标准,我给本博客打分:7。

    • 得分情况如下

      1. 正确使用Markdown语法(加1分):
      1. 模板中的要素齐全(加1分)
      1. 教材学习中的问题和解决过程,未解决
      1. 代码调试中的问题和解决过程,加1分
      1. 本周有效代码超过300分行,加2分
      1. 其他加分,加分2 :
    • 排版精美的加1分

    • 进度条中记录学习时间与改进情况的加1分

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

    这两章的内容还是比较多的,并且有很多新的东西,但是在理解方面,并没有前面的概念性的知识难理解,在将书上的代码敲过一些之后,对于这些内容就有了很好地理解, 只是书上的知识点还是蛮多的,这就需要我们花费大量的时间去理解。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第六周 1260/1000 1/1 30/50

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:50小时

    • 实际学习时间:30小时

    • 改进情况:因为每周清明串休导致课程调整以及实验课的陆续开展,导致本周学习略有压力。

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    开发第七天
    项目进行ing
    Spring 计划
    0505--鲜花售卖网之“NABCD模型”
    --《软件工程》奖励之“黄色领骑衫”
    0329--Scrum团队准备工作
    0428数字口袋精灵app优化
    0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)
    复利计算器app发布
    0415--博客欣赏与评论
  • 原文地址:https://www.cnblogs.com/xxy9712/p/6660021.html
Copyright © 2020-2023  润新知