第十周-异常与多线程


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. 关于JS中利用for循环解决实际问题的逻辑操作

    第一部分 <script>        //        <!--折纸:折多少次和珠穆朗玛峰一样高//1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度884 ...

  2. Mac OS X 终端命令开启功能

    1.系统目录下显示资源库2.Finder显示隐藏文件3.Xcode卸载4.在Finder标题栏显示完整路径5.去掉窗口截屏的阴影6.强制Safari在新标签中打开网页7.改变截屏图片的保存位置 1.系 ...

  3. 使用Python写一个贪吃蛇

    参考代码http://blog.csdn.net/leepwang/article/details/7640880 我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的 ...

  4. nginx cpu高排查

    首先查看nginx的error日志,无异常打印. cpu占用如下图所示: top - 10:05:40 up 233 days, 16:28, 4 users, load average: 25.53 ...

  5. HttpResponseMessage获取请求响应体内容

    问题描述 使用httpClient获取的HttpResponseMessage类型的response,直接对其toString()获取的是请求的响应头,并没有获取响应体的内容 解决办法 HttpRes ...

  6. PyQt:昨天今天明天表示方法

    PyQt中今天的表示方法如下: QtCore.QDate.currentDate() 那么,明天怎么表示呢? today=QtCore.QDate.currentDate().toJulianDay( ...

  7. jsp的C标签一般使用方法以及js接收servlet中的对象及对象数字

    jsp的C标签一般使用方法以及js接收servlet中的对象及对象数组 由于现流行的javaWeb框架提倡前后端分离,比如在SpringMvc中已经很少写servlet的一些东西:目前 前端jsp中大 ...

  8. 迈向angularjs2系列(7):表单

    目录 一:校验表单的使用 1.搭建脚手架 2.校验表单的使用 3.select下拉列表的用法 一: 校验表单的使用 对于CRUD型的应用,表单是必备组件. 1.搭建脚手架 git clone http ...

  9. Csocket基本原理

    我通过几个采用 CSocket 类编写并基于 Client/Server (客户端 / 服务端)的网络聊天和传输文件的程式  ,在调试这些程式的过程中,追踪深入至 CSocket 类核心源码 Sock ...

  10. Mybatis --- 创建方法、全局配置

    总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]!     和数据库打交道的技术有:      原生的JDBC技术--->Spring的Jd ...