• 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小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    Mac下Mysql启动异常["ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"]
    Appium的前世今生
    appium自动化测试
    ubuntu下nvm,node以及npm的安装与使用
    Android反编译
    Android 常用 adb 命令总结
    Android SDK开发常用工具的使用及其异常处理
    如何获取android app的Activity
    Android 上多方式定位元素(python)
    获得android应用的版本号
  • 原文地址:https://www.cnblogs.com/musea/p/8886183.html
Copyright © 2020-2023  润新知