• 20155210潘滢昊 2016-2017-2 《Java程序设计》第6周学习总结


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

    教材学习内容总结

    • 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的

    • InputStream与OutputStream

    read

    write

    二进制文件

    • 标准输入输出

    System.in: 标准输入,默认关联到键盘(终端输入)

    System.out: 标准输出,默认关联到显示器(终端输出)

    System.err: 标准错误,默认关联到显示器(终端输出)

    • 输入输出重定向:setIn,setOut,setErr

    • FileInputStream与FileOutPutStream
      文件读写

    • 装饰器类:

    • Decorator模式

    • BufferedInputStream与BufferedOutputStre- am: 内部提供缓冲,提高效率

    • DataInputStream与DataOutputStream:基本数据类型与字节的转换,API好好研究一下

    • ObjectInputStream与ObjectOutputStream
      java.io.Serializable接口

    • 线程生命周期

    1.Daemon线程:主线程会从main()方法开始执行,直到main()方法结束后停止JVM。如果主线程中启动了额外线程,默认会等待被启动的所有线程都执行完run()方法才中止JVM。 如果一个Thread被标示为Daemon线程,在所有的非Daemon线程都结束时,JVM自动就会终止。

    2.Thread基本状态图:用Thread实例start()方法后,基本状态为可执行(Runnable)、被阻断(Blocked)、执行中(Running)。

    3.安插线程:join()表示将线程加入称为另一个线程的流程中,线程使用join()加入至另一个线程时,另一个线程会等待被加入的线程工作完毕,然后在继续它的动作。

    4.停止线程:线程完成run()方法后,就会进入Dead,进入Dead的线程不可以再次调用start()方法,否则会抛出IllegalThreadStateException异常。

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

    • 问题1:在第十章开始时,对书上的输入和输出流的划分不太理解
    • 问题1解决方案:蓝墨云班课的教学视频《Java当中的IO(一)》
    • 问题2:可通过wait()、notify()与notifyAll()三个方法来控制线程释放对象的锁定或通知线程参与锁定竞争,那么三个方法有什么区别?
    • 问题2解决方案:

    wait

    Object的wait方法有三个重载方法,其中一个方法wait() 是无限期(一直)等待,直到其它线程调用notify或notifyAll方法唤醒当前的线程;另外两个方法wait(long timeout) 和wait(long timeout, int nanos)允许传入 当前线程在被唤醒之前需要等待的时间,timeout为毫秒数,nanos为纳秒数。

    notify

    notify方法只唤醒一个等待(对象的)线程并使该线程开始执行。所以如果有多个线程等待一个对象,这个方法只会唤醒其中一个线程,选择哪个线程取决于操作系统对多线程管理的实现。

    notifyAll

    notifyAll 会唤醒所有等待(对象的)线程,尽管哪一个线程将会第一个处理取决于操作系统的实现。

    这些方法可以使用于“生产者-消费者”问题,消费者是在队列中等待对象的线程,生产者是在队列中释放对象并通知其他线程的线程。

    让我们来看一个多线程作用于同一个对象的例子,我们使用wait, notify and notifyAll方法。

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

    • 问题1:在学习死结部分时,编译运行P343 DeadLockDemo.java代码,有时发生死结,有时不发生
    • 问题1解决方案:书上的解释是这样:发生死结的原因在于,thread1在调用resource1.corportate(resource2)时,会取得r1的锁定,若此时thread2也正好调用resource2.corportate(resource1),取得r2的锁定,凑巧thread1现在打算运用传入的r2调用doSome(),理应取得r2的锁定,但锁定现在被t2拿走了,于是t1进入阻断,而t2也打算运用传入的r1调用doSome(),理应取得r1的锁定,但锁定现在是t1取走,于是t2进入等待。

    代码托管

    上周考试错题总结

    • 下列属于非受检异常的是哪项?
      :

    A.SQLException

    B.IOException

    C.NullPointerException

    D.OutOfMemoryError

    答案:D
    异常分为受检异常与非受检异常,OutOfMemoryError属于Error为非受检异常

    结对及互评

    评分标准

    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分

    点评模板:

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

      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:

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

    • 参考示例

    点评过的同学博客和代码

    • 本周结对学习情况

    - 结对学习内容
        - 上周错题
        - 线程与并行API
    

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

    有了教学视频后,好多问题都可以得到解答,教学视频这个东西很好

    学习进度条

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

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

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

    • 计划学习时间:25小时

    • 实际学习时间:24小时

    • 改进情况:每天都能打代码,并上传,但是现在大多代码还是知其然而不知其所以然。

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

    参考资料

  • 相关阅读:
    JS事件冒泡
    iis设置Gzip后,无后缀的url无法压缩解决 MVC iis GZIP
    SQL中的循环、for循环、游标
    采用CDN加速后,如何在程序里获取用户IP地址
    Resharper 的快捷键
    JS防后退跳转
    ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
    Log4net创建日志及简单扩展
    统治世界的十大算法
    ffmpeg save rtsp stream
  • 原文地址:https://www.cnblogs.com/panyinghao/p/6659574.html
Copyright © 2020-2023  润新知