201521123029《Java程序设计》第十周学习总结
1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容.
2. 书面作业
本次PTA作业题集异常、多线程
1.finally
题目4-2
1.1 截图你的提交结果(出现学号)
1.2 4-2中finally中捕获异常需要注意什么?
答:1.1 截图如下:
1.2 需要注意的是不管第一个try catch语句怎么样,都会执行finally中的内容。并且需要注意resource.close();可能发生异常需要抛出异常。
2.用异常改进ArrayIntegerStack
题目4-3
2.1 截图你的提交结果(出现学号)
2.2 实验总结
答:2.1 截图如下:
2.2 此题直接在以前的实验中的代码直接修改。在pop()、push()、peek()方法中抛出异常,并建立异常对象,然后根据题目要求去抛出异常,例如如果item为null,则不入栈直接返回null。如果栈满,抛FullStackException。
3.自定义异常
题目5-4
3.1 截图你的提交结果(出现学号)
3.2 自定义异常有哪几个关键点?
答: 3.1 截图如下:
3.2 其一需要自己建立2个异常类,然后要让它实现功能则需要在setName方法和public int addScore(int score)方法中去具体操作。其二需要在主函数中使用try catch,才使得用起来2个自定义异常。
4.读取文件并组装对象
实验任务书中中的题目3:读取文件并组装对象
给出关键代码(需出现你的学号)
5.学会使用Eclipse进行调试
观看相关调试视频
5.1 简述使用Eclipse进行调试需要几步?
5.2 调试时F5, F6, F7快键键各有什么不同?什么情况该使用哪个快捷键?
5.3 除了Eclipse的调试器,你还使用什么方法调试程序?
5.4 选做:实验任务书中的题目5:使用Eclipse进行调试中的选做
答: 5.1 首先设置断点,其次点击进入debug模式,然后进行调试、
5.2 F5(step into):进入当前行的方法内部,一步一步执行;F6(step over,跳过):执行当前行,但不进入执行细节;F7 (step return,跳出):返回上一步执行的方法(相对应F5)。
5.3 使用输出来看结果是否是自己想要的。
6.题集多线程
6.1 程序填空3-1、3-2。(截图提交结果,出现你的学号)
6.2 函数4-1(Thread)、4-2(Runnable)(截图提交结果,出现你的学号)
6.3 函数4-3(Runnable与匿名内部类)(截图提交结果,出现你的学号),并使用Labmda表达式改写。
6.4 实验总结
答:6.1 截图如下:
6.2 截图如下:
6.3 截图如下:
Labmda表达式改写
Thread t1 = new Thread(()->{
System.out.println(mainThreadName);
System.out.println(Thread.currentThread().getName());
System.out.println(Arrays.toString(Thread.class.getInterfaces()));
}
6.4 这些题目更多的是为了熟悉线程中的各种方法功能以及创建线程的2种方式,其一是定义Thread类的子类,覆盖run()方法,PPT中不建议使用此方法。其二是定义实现Runnable接口的类,实现run()方法,然后创建实例。例如MonitorTask task1 = new MonitorTask();Thread t1 = new Thread(task1);就可以实现线程的启动start()等待结束join()暂停当前线程yield()等方法。
7.源代码阅读:多线程程序BounceThread
7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?
7.2 Ball.java这个程序只做了两件事,这两件事分别是什么?
7.3 BallComponent也只做了两件事,这两件事分别是什么?
7.4 BounceThread中,什么时候启动了新线程?
7.5 这个程序是如何实现?一个大致的执行流程是什么?
答: 7.1 BallRunnable类,实现了Runnable接口。
7.2 移动球,然后还有获取小球的位置。
7.3 加入小球和画出小球。
7.4 点击添加按钮的时候启动
7.5 首先让小球出现,然后点击按钮就有小球移动。再点击就多出一个移动的球。后面就会停止运动。
8.购物车系统中的多线程
8.1 购物车系统中可能存在哪些多线程问题?
答:我觉得购物车系统中的用户,其中用户的个人信息肯定有多种线程,来实现诸多的功能。
3. 码云上代码提交记录
题目集:异常、多线程(3-1, 3-2, 4-1, 4-2, 4-3)
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
答:截图如下: