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

教材学习内容总结

第十章

  • InputStream、OutputStream:无论数据源或目的地为何,只要设法取得InputStream或OutputStream的实例,接下类操作输入/输出的方式都是一致的,无须理会来源或目的地的真正形式。
  • Dump():dump()方法接受InputStream与OutputStream的相关操作,分别代表读取数据的来源,以及输出数据的目的地。
  • 输入/输出若发生错误,程序会抛出java.io.IOExcpection异常,在程序当中不作特别处理,而是在dump()方法声明throws,由调用dump()方法的客户端处理。
  • 要想重新制定标准输入来源,可以使用System的setIn()方法指定InputStream实例,比如System.setIn(newFileInputStream(args[0])),可以读取指定文档并显示在文本模式。
  • 以File开头的Stream子类,可以指定文件名创建实例用来读取数据/写出数据,不使用实例时使用close()关闭文档。
  • 串流处理装饰器:
    • Buffered:先将数据转移到电脑内存的缓冲区,后续调用read()方法先看看缓冲区有没有数据,有就从缓冲区读取,没有就从来源读取数据到缓冲区,从而提高读取效率。
    • Data:自动在指定的类型与字节间转换。
    • Object:将内存中的对象整个存储下来,之后再读入还原为对象。读入/读出方法:readObject()/writeObject()。
  • Reader和Writer继承架构:Reader抽象化字符数据读入的来源,Writer抽象化了数据写出的目的地。不用时必须使用close()方法关闭串流。
  • 字符处理装饰器:
    • InputStreamReader与OutputStreamWriter可以对串流数据打包。
    • BufferedReader与BufferedWriter:与前面的Buffered串流装饰器作用相同,可以为输入/输出提供缓冲区的作用
    • PrintWriter(没用过):与PrintStream类似,不过可以对Writer进行打包,提供print()、println()、format()方法。

第十一章

  • 线程容许有限个程序同时(也许是交替)运行,并将运行结果放出。
  • Daemon线程与产生它的背景服务线程同生死,故其生命周期由其背景服务线程而定。
  • Thread有三种工作状态:Runnable、Running、Blocked。线程有其优先权,setPriority()方法可以为其设定优先权,设定值1~10,不在此范围的设定值会当成非法值抛出。我手贱设置线程优先值到11,然后系统就报错了。
  • Thread.sleep()可以将线程强制进入休眠状态,其他线程若想调用休眠线程,系统将会抛出InterruptedException异常对象来唤醒该休眠线程。
  • join()方法可以让其他线程加入正在运行的线程。
  • ThreadGroup像用户组那样,将线程集中一起,按照预设的优先权来逐个运行。
  • 多个线程运行会出现竞争,使用wait()方法可以有效避免竞争,使用notify()方法可以调用(还是通知?)处在等待队列中的线程进入运行状态。
  • 各类Lock锁定方法,都是让synchronized运行的语言,Lock锁定对象后,synchronized才可运行其区块内的程序。
  • Executor接口的目的是将Runnable的指定与实际如何执行分离(?)。

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

  • 问题1:并行Collection里面的程序我没明白,可能Collection有其他方法我没看到?
  • 问题1解决方案:再写写,再扁扁。

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

  • 问题1:课本343页的那个有几率发生死结的程序,我想知道为什么会发生这种情况。
  • 问题1解决方案:目前还没有任何程序运行结果能够证明我的猜测,我试图减少或增加程序段来改变运行结果,但是还是没有与未修改前的输出结果不同的回应。

代码托管

上周考试错题总结

  • 不好意思,我没看见有答案参考……

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:

    • 尽管对书上的每一条信息都做了摘抄,但是内容太多让我又有种密集恐惧症的感觉。
  • 代码中值得学习的或问题:
    • 遇到问题及时找人解决,这值得我学习。
  • 基于评分标准,我给本博客打分:9分。得分情况如下:
  1. 正确使用Markdown语法(加1分):
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程, 加1分
  4. 代码调试中的问题和解决过程, 加1分
  5. 本周有效代码超过300分行,加2分
    6 其他加分,加3分 :
  • 进度条中记录学习时间与改进情况的加1分
  • 错题学习深入的加1分
  • 代码Commit Message规范的加1分

点评过的同学博客和代码

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 27/27 1/1 18/18
第二周 57/97 1/2 24/42
第三周 220/284 1/3 36/78 函数封装还学不会
第四周 408/692 1/4 44/122 知道怎么封装函数了;分得清继承和接口。
第五周 410/1102 1/5 40/162 没什么好疑惑的
第六周 390/1492 1/6 27/189

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

  • 计划学习时间:30小时

  • 实际学习时间:27小时

  • 改进情况:
    跑去参观别人的代码……顿时感觉自己的代码就像过家家那样幼稚。Orz

参考资料

2016-2017-2 《Java程序设计》第六周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  3. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  4. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  5. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  8. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

  9. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

  10. 20175317 《Java程序设计》第九周学习总结

    20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...

随机推荐

  1. 关于js typeof 的理解

  2. 使用 Vagrant 打造跨平台开发环境fffff

    Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史. 我们可以通过 Va ...

  3. ci钩子

    钩子 - 扩展框架核心 CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件.CodeIgniter 的运行遵循着一个特定的流程,你可以参考这个页面的 应用程 ...

  4. 【Java线程】SwingWorker的用法

    Swing应用程序员常见的错误是误用Swing事件调度线程(Event DispatchThread,EDT).他们要么从非UI线程访问UI组件:要么不考虑事件执行顺序:要么不使用独立任务线程而在ED ...

  5. 传说中的WCF:消息拦截与篡改

    我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过借 ...

  6. Day22-Django之缓存

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...

  7. Mybatis笔记六:Mybatis中SqlSessionFactoryBuilder/SqlSessionFactory/SqlSession/映射器实例的作用域(Scope)和生命周期

    SqlSessionFactoryBuilder 这个类可以被实例化.使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了.因此 SqlSessionFactoryBuilder ...

  8. 使用cmstp绕过应用程序白名单

    默认情况下,AppLocker允许在文件夹中执行二进制文件,这是可以绕过它的主要原因.已经发现,这样的二进制文件可以很容易地用于绕过AppLocker和UAC.与Microsoft相关的二进制文件之一 ...

  9. 《Linux内核设计与实现》第7章读书笔记

    第七章 链接 一. 链接的概念 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程.可以执行于编译.加载和运行时,由叫做链接器(可实现分离编译)的程序自动执行. 二.静态链接 为了创建静态 ...

  10. React事件传递参数

    <button onClick={(ev) => {this.handleClick(ev,arg1,arg2,...)}} 用箭头函数,注意第一个参数一定要是事件参数.