20165226 2017-2018-4 《Java程序设计》第8周学习总结

Posted musea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165226 2017-2018-4 《Java程序设计》第8周学习总结相关的知识,希望对你有一定的参考价值。

20165226 2017-2018-4 《Java程序设计》第8周学习总结

教材学习内容总结

第十二章

  • 创建线程的方式有三种,分别是:
    • 继承Thread类创建线程,程序中如果想要获取当前线程对象可以使用方法:Thread.currentThread();如果想要返回线程的名称,则可以使用方法:getName();
    • 实现Runnable接口创建线程
    • 使用Callable和Future创建线程
  • 线程常用方法
    • start()
    • run()定义线程线程对象被调度之后所执行的操作
    • sleep(int millsecond),必须在try-catch语句块中调用sleep方法
    • isAlive()

      Thread thread = new Thread(target);
      threrad.start();
  • 线程同步
  • 线程联合

    B.join();
  • 计时器线程,Timer类,在javax.swing中

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

  • 问题1:看到书上P382提到了计时器Timer类,该类在javax.swing包中,java.util包中也有一个名字是Timer类,产生疑惑,那java.utiljavax.swing里的Timer有什么不同吗?
  • 问题1解决方案:先在书上浏览了一下,没有相关信息,然后通过百度查找相关资料,得出以下结论:

    在 1.3 版本中,向 Java 平台添加了另一个 Timer 类:java.util.Timer。该类和 javax.swing.Timer 的基本功能相同,但是 java.util.Timer 更常用,功能更多。javax.swing.Timer 有两个特征,它们可以让使用 GUI 更方便。首先,其事件处理程序都是 GUI 程序员所熟悉的,并且可以更简单地处理事件指派线程。第二,其自动线程共享意味着不必采取特殊步骤来避免生成过多线程。相反,计时器使用同一个线程让光标闪烁、使工具提示显示等等。 
  • 问题2:主线程与子线程有什么区别?
  • 问题2解决方案:

    1.每个线程都有一个唯一标示符,来区分线程中的主次关系的说法。 
    线程唯一标示符:Thread.CurrentThread.ManagedThreadID;
    2.UI界面和Main函数均为主线程。
    3.被Thread包含的“方法体”或者“委托”均为子线程。
    4.委托可以包含多个方法体,利用this.Invoke去执行。
    5.也可以定义多种方法体,放在Thread里面去执行。则此方法体均为子线程。注意如果要修改UI界面的显示。则需要使用this.Invoke,否则会报异常。
    6.Main函数为主线程,id标示符与UI界面主线程相等。

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

  • 问题1:将Windows里面编写的代码移到虚拟机里面,然后在编译Example12_1的时候,出现了点小bug,弹出如下图所示界面
    技术分享图片

  • 问题1解决方案:添加encoding 参数:javac -encoding gbk ArrayTest3.java,然后运行成功
    技术分享图片

代码托管

技术分享图片

上周考试错题总结

  • 易错点:正确答案: A C D E 你的答案: C D E

    下列属于常用数据库的是 
    A Access
    B XAMMP
    C .mysql
    D .Oracle
    E .SQL Server
  • 易错点:正确答案: A B 你的答案: A B D

    下列属于数据操作语言的是 
    A insert
    B update
    C create
    D select
  • 易错点:正确答案: C 你的答案: D

    接口RowSet继承了接口__,可以调用RowSet中的方法__来填充其数据区。
    ①Statement     ②ResultSet     ③update     ④populate 
    A ①③
    B ①④
    C ②③
    D ②④

结对及互评

  • 博客中值得学习的或问题:
    • 要素全面
    • 很认真细致
    • 排版简介美观
  • 代码中值得学习的或问题:
    • 代码中文件分类简洁
    • 很认真

点评过的同学博客和代码

  • 本周结对学习情况
    • 20165230
    • 结对学习内容
      • 商讨结对编程的相关应用,在上周的基础上修改增添了部分代码。

其他

通过本周的学习,我学会了使用Thread类或子类创建线程,实现各个进程轮流执行。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 48/48 1/1 20/20
第二周 390/438 2/3 18/38
第三周 866/1304 1/4 18/56
第四周 1105/2409 1/5 30/86
第五周 1229/3196 1/6 20/106
第六周 1147 /4343 2/8 25/131
第七周 1222 / 3668 2/10 20/151
第八周 284 / 3930 3/13 20/171

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

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

  • 计划学习时间:30小时

  • 实际学习时间:18小时

  • 改进情况:

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

参考资料






以上是关于20165226 2017-2018-4 《Java程序设计》第8周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20165226 第一周

2018-2019 20165226 Exp4:恶意代码分析

20165226 我期望的师生关系

20165226 实验三 敏捷开发与XP实践

2018-2019 20165226 Exp7 网络欺诈防范

2018-2019-1 20165226 实验三 并发程序