zoukankan      html  css  js  c++  java
  • 2016-2017-20155329 《Java程序设计》第6周学习总结

    学号 2016-2017-20155329 《Java程序设计》第6周学习总结

    教材学习内容总结

    • 数据从来源取出:输入串流 java.io.InputStream
    • 写入目的的:输出串流 java.io.OutputStream
      不使用inputstream和outputstream时候要使用close()关闭串流。
    • FileInputStream指定文件名创建实例,用,读取数据,FileOutputStream写出数据,二者不要时用close()关闭文档
    • 用ByteArrayInputStream指定byte数组创建实例,将byte数组当数据源进行读取,ByteArrayOutputStream将byte数组当目的地写出数据
    • 打包器为输入输出数据加工处理:分类有 具备缓冲区作用的 BufferedInputStream,BufferedOutputStream. 数据转换处理作用的 DataInputStream和DataOutputStream . 和对象串行化能力的ObjectInputStream.ObjectOutputStream
    • 处理字符输入输出的父类是Reader和Writer两个,FileReader,FileWriter对文档读取和写入。
    线程与并行API
    • 让目前流程暂停指定时间,用java.long.thread的静态sleep()方法。
    • main外独立设计流程,写java.long.Runnable接口,从main开始主线程执行,创建Thread实例执行run方法,启动指定流程,调用Thread实例的start()方法。好处:有弹性
    • 撰写多线程程序的方式是:继承Thread类。调用Thread实例的start方法后3个基本状态:可执行,被阻断,执行中。
    • 线程中有优先权,srtPriority()方法设定优先权,数字越大优先权越高。优先权相同,则输流执行。
    • 一个进入Blocked的线程,可由另一个线程调用该线程的interrupt方法离开blocked状态。
      进入Dead的方法的线程不可以再次调用start()方法。
    • 标示为Deprecated的API标示出问题的方法,不建议再用
    • 线程的暂停,重启,停止都要视需求而做。
      每个线程都属于某个线程群组,线程一旦归入某个群组,无法更换群组
    • 方法上标synchronize提供可重入同步,执行方法必须取得该实例的锁定。执行synchronize范围代码期间。若调用锁定对象的wait()方法,线程会释放对象锁定。
    • 调用notify()时候,从对象等待集合中随机通知一个线程加排班,notifyAll(),所有等待集合都会被通知参与排班,这些线程会与其他线程共同竞争对象锁定。

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

    • 问题1:操作什么接口可以建立执行流程?
    • 问题1解决方案:java.lang.Runnable接口。
    • 问题2:hasNextLine()与nextLine()的用法?
    • 问题2解决方案:查询API文档可知,hasNextLine()与nextLine()均继承自java.util.Scanner。它们的用法是,hasNextLine()用来判断下一行是否存在,常用在while语句中,当且仅当下一行有输入时返回true;而nextLine()返回值是当前行的剩余内容。
    • 问题3:ForkJoinPool与其他的ExecutorService的区别
    • 问题3的解决方案:ForkJoinPool是闲聊了工作窃取演算,其建立的线程如果完成手边任务,会尝试寻找并执行其他任务建立的资额任务,让线程保持忙碌状态,有效利用处理器的能力。ForkJoin框架适用于计算密集式的任务,较不适合用于容易造成线程阻断的场合。
    • 问题4:字符流和字节流的区别和联系
    • 问题4解决方案:因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。

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

    • 问题1:
      编译无问题,运行无结果,应该是逻辑错误
    • 问题1解决方案:后面用数组来写。
    • ...

    代码托管

    (statistics.sh脚本的运行结果截图)

    上周考试错题总结

    class Guy {
    String greet() {
    return "hi";
    }
    }
    class Cowboy extends Guy {
    String greet() {
    return. "howdy";
    }
    }
    class Wrangler extends Cowboy {
    String greet() {
    return "orch!";
    }
    }

    class Greetings2 {
    public static void main (String [] args) {
    Guy g=new Wrangler();
    Guy g2=new Cowboy();
    Wrangler w2=new Wrangler();
    System.out.print(g.greet()+g2.greet()+w2 .greet());
    }
    }
    结果是什么?

    A.hi hi ouch!

    (√)B.ouch! howdy ouch!

    C.hi howdy ouch!

    D.编译失败

    结对及互评

    我与20155327李百乾结对学习,主要在寝室里学习, 虽然都是菜鸟级别的 但是每天都有讨论,在学习上遇见很多问题,通过讨论解决了一部分,但是还是有很多地方需要努力。

    评分标准

    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分

    点评模板:

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

      • ...
    • 代码中值得学习的或问题:
      -敲新代码需要扎实的基础,清晰的思路, 最近敲代码总是犯很多逻辑错误,编译没问题,运行无结果。

    • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

    • 参考示例

    点评过的同学博客和代码

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

    这一周的学习 主要是看老师给的视频,在视频学习的过程中发现学习更加的轻松有效果。希望老师以后多多在云班课中放入一些视频资源。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 3000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第6周 304/1300 8/9 30/90

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

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

    • 计划学习时间:14小时

    • 实际学习时间:19小时

    • 改进情况:略好

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

    参考资料

  • 相关阅读:
    发现个atan2的正确使用方式
    Forward+ Shading架构
    fatal: unable to connect to gitee.com: gitee.com[0: 180.97.125.228]: errno=Unknown error 解决方案
    HDFS HA(高可用性)集群规划
    如何使用RTP引擎对语音编码进行转码
    关于 Angular 应用 tsconfig.json 中的 target 属性
    浅谈 Orbeon form builder 的权限控制
    关于 Angular 应用 tsconfig.json 中的 lib 属性
    orbeon form 通过 url 的方式同第三方应用集成的开发明细
    orbeon form 的配置介绍
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/6659868.html
Copyright © 2011-2022 走看看