第十周-异常与多线程


1. 本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容。

2. 书面作业:本次PTA作业题集异常、多线程

1. finally:题目4-2

1.1 截图你的提交结果(出现学号)

1.2 4-2中finally中捕获异常需要注意什么?

finally的执行之前必须先经过try语句。而在finally中也需要使用到try-catch,以防出现异常,所以会比较臃肿。

2. 用异常改进ArrayIntegerStack:题目4-3

2.1 截图你的提交结果(出现学号)

2.2 实验总结

这个比较简单啦,主要是自定义异常了,然后throw就好了。

3. 自定义异常:题目5-4

4.1 截图你的提交结果(出现学号)

4.2 自定义异常有哪几个关键点?

首先是继承已有的异常类,然后调用父类的方法。其次是一般自定义异常都是为了能让人一看到就知道是出了什么错误,所以类名也很有讲究。然后就是在使用的时候要利用throws和throw

5. 学会使用Eclipse进行调试:观看相关调试视频

5.1 简述使用Eclipse进行调试需要几步?

1. 在出错的地方设置断点
2. 启动调试模式
3. Eclipse有一个专门的debug perspective,专门用于调试
4. 查看状态值

5.2 调试时F5,F6,F7快键键各有什么不同?什么情况该使用哪个快捷键?

F5(step into):跳入,跳入某个函数内部进行调试
F6(step over):跳过,跳过某个函数,在执行时不进入某个函数
F7(step return):跳出,从某个函数内部跳出

5.3 除了Eclipse的调试器,你还使用什么方法调试程序?

使用System.out.println

6. 题集多线程

6.1 程序填空3-1、3-2。(截图提交结果,出现你的学号)

6.2 函数4-1(Thread)、4-2(Runnable)(截图提交结果,出现你的学号)

6.3 函数4-3(Runnable与匿名内部类)(截图提交结果,出现你的学号),并使用Labmda表达式改写。

new Thread(new Runnable(){
public void run() {
System.out.println(mainThreadName);
System.out.println(Thread.currentThread().getName());
System.out.println(Arrays.toString(getClass().getInterfaces()));
}
});

6.4 实验总结

这几个函数题其实做起来不难,就是理解题目有难度,包括异常的函数题也是这样子,题目看不懂,而且没有测试的数据,所以通不过也不知道少考虑了什么问题。就好比多线程的函数题4-2,我是没搞懂为啥部分正确。
3-1:这个是在线程中加一个flag,当flag的值改变了之后就退出
3-2:这个主要是join()方法的使用。
4-1:这个是通过定义Thread类的子类,覆盖Thread类的run()方法,然后创建该子类的实例,但一般不用该方法,开销大。
4-2:这个函数的关键是在于flag标识符,以此来终止线程。还有就是实现Runnable接口的一些概念吧。
4-3:匿名内部类与实现Runnable接口的综合性使用,既练习了现在学的知识,也不忘记之前学习的东西。

7. 源代码阅读:多线程程序BounceThread

7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?

BallRunnable支持了多线程并实现了Runnable接口。这个类是用于Ball移动,第一个Ball移动之后,先睡眠一段时间,再重新开始第二个Ball移动,循环。

7.2 Ball.java这个程序只做了两件事,这两件事分别是什么?

这是Ball的类,是用于设计Ball的大小,形状,以及他的位置和移动路线。

7.3 BallComponent也只做了两件事,这两件事分别是什么?

将Ball设置成“图形”,并将其置于容器中。

7.4 BounceThread中,什么时候启动了新线程?

当点击按钮“start”时,调用addBall()方法,生成一个新的Ball,然后就启动了新线程开始移动。

7.5 这个程序是如何实现?一个大致的执行流程是什么?

首先将图形界面架构出来,将其中的基本组件设置好。其次在点击按钮“start”时,新生成一定设置下的Ball(每点击一次就会新生成一个Ball),然后启动新线程,根据设计开始他的移动路线,在移动一定的步数后停下来。

8. 购物车系统中的多线程

8.1 购物车系统中可能存在哪些多线程问题?

顾客吧,每个顾客都可以同时操作购物车,搜索商品等。

3. 码云上代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

很尴尬的是,不知道为什么我的码云提交不了代码上去,所以没有截图了。

201521123071 《JAVA程序设计》第十周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  2. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

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

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

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

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

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

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

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

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

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

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

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

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  9. 20172325 2018-2019-2 《Java程序设计》第九周学习总结

    20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...

  10. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

随机推荐

  1. 专业辟谣----ThinkSNS不仅仅是微博程序!

    [摘要]ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+. ThinkSNS这个词,第一眼应该想到的 ...

  2. Hexo快速部署教程

    一直有建立博客的需要,使用过Wordpress动态博客,一直访问速度比较慢,刚开始以为是空间域名的解析的问题,尝试使用Hexo静态博客,部署后感觉速度正常很多,特意发文快速部署教程 准备 本文是在wi ...

  3. css复习内容

    有时候 自己动手写一遍比想十遍都有用 <!DOCTYPE html><html> <head> <meta charset="utf-8" ...

  4. log4j配置文件,用时导入jar包buildPAthena、

    log4j.rootLogger=debug,CONSOLE,file#log4j.rootLogger=ERROR,ROLLING_FILElog4j.logger.cn.smbms=debuglo ...

  5. Linux学习总结(七)—— CentOS软件包管理:脚本安装

    脚本安装就是软件编写者写好一个shell脚本或者java脚本,你只需要输入一些简单的信息便可直接安装.这种安装方式方便简单,类似于Windows下软件的安装方式. 下面以webmin的安装为例讲解脚本 ...

  6. JSP 页面传值方法总结

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式. 1. URL 链接后追加参数 <a href=&quo ...

  7. 转载:细说Cookie

    细说Cookie 转载:http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html 阅读目录 开始 Cookie 概述 Cookie的 ...

  8. 【PL/SQL Developer】动态执行表不可访问,本会话的自动统计被禁止

    在执行菜单里你可以禁止统计,或在v_$session,v_$sesstat 和 v_$statname 表里获得select权限 解决办法 [oracle@localhost ~]$ sqlplus ...

  9. sed 实践案例 (不定期更新)

    删除每行第一个字符 sed -r 's/^.//g' /etc/passwd 删掉每行第二个字符 sed -r 's/^(.)(.)/\1/g' /etc/passwd 删掉每行最后一个字符 sed ...

  10. Windows8.1 与Ubuntu14.04双系统

    机型:联想 Y480 现有操作系统:win8.1 64位 物理内存:8G 磁盘存储:两个硬盘 1. SSD为固态盘 Solid State Drives  110G   现已安装有win8系统 2.H ...