1. 本周学习总结##

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

2. 书面作业##

本次PTA作业题集异常、多线程

Q1.finally###

题目4-2

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

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

只有执行过try语句块,finally语句块才会执行;无论在try块的哪个地方返回,finally块都会被执行到。finally的作用是正确关闭资源,在关闭资源的过程中可能发生异常,需要进行捕获。

Q2.用异常改进ArrayIntegerStack###

题目4-3

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

2.2 实验总结

用if语句判断栈,如果栈满,if(top== arr.length){ throw new FullStackException();}抛出栈满的异常,如果栈空。if(top==0){ throw new EmptyStackException();}抛出栈空的异常。

Q3.自定义异常###

题目5-4

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

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

自定义异常必须继承异常,如果在抛出异常时有提示信息,则要在自定义异常类中编写构造函数,super(s),使用父类的方法返回提示信息。Checked Exception继承Exception类,Uncheck Exception继承RuntimeException类。自定义的异常在抛出时要明确告诉用户异常的原因。

Q4.读取文件并组装对象###

实验任务书中中的题目3:读取文件并组装对象

给出关键代码(需出现你的学号)

    public class ReadFileUsingScanner201521123095 {
public static void main(String[] args) throws Exception {
try {
Scanner in = new Scanner(new File("身份证号.txt"));//为myfile.txt这个File创建一个扫描器in
while(in.hasNextLine()){
String line = in.nextLine();//读出myfile.txt的下一行 Scanner lineScanner = new Scanner(line);//为每一行建立一个扫描器
//System.out.println("lineScanner="+lineScanner);
lineScanner.useDelimiter(" ");//使用空格作为分隔符
//System.out.println(line);
String a1 = lineScanner.next();//姓名
String a2 = lineScanner.next();//身份证号
String a3 = lineScanner.next();//性别
String a4 = lineScanner.next();//年龄
String a5 = lineScanner.next();//地址
while(lineScanner.hasNext()){//谨防地址只有一段
a5 += lineScanner.next();
}
list.add(new User(a1,a2,a3,Integer.parseInt(a4),a5));
System.out.println(a1+a2+a3+a4+a5);
} catch(NoSuchElementException e)
{
e.printStackTrace();
}
catch(NumberFormatException e)
{
e.printStackTrace();
} Collections.sort(student, (User o1, User o2) -> {
return o1.getAge() - o2.getAge();
});

Q5.学会使用Eclipse进行调试###

观看相关调试视频

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

设置断点;启动调试模式;开始运行程序;查看状态值

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

F5:step into 跳入;F6:step over,跳过;F7:step return,跳出

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

一般可以使用System.out.printIn

Q6.题集多线程###

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

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



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

Labmda表达式改写:

public static void main(String[] args) {
final String mainThreadName = Thread.currentThread().getName();
Thread t1 = new Thread(() -> {
System.out.println(mainThreadName);
System.out.println(Thread.currentThread().getName());
System.out.println(Arrays.toString(Thread.class.getInterfaces()));
});
t1.start();
}

6.4 实验总结

 3-1中setDaemon()使线程成为守护线程,必须在start之前调用;
3-2中需要join()方法,确认线程结束;
4-1主要是创建线程的方法,重写run()方法,循环输出0到n-1,结束之后输出该线程的名称。
4-2在判断word与alien的时候多加一个判空的条件;
4-3:学习了一些Thread的函数;

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

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

BallRunnable这个类,它实现了Runnable接口。让小球在界面上进行移动,再休眠一段时间。

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

getShape()获得小球的大小和move(Rectangle2D bounds)小球移动的位置坐标变化,控制小球的移动。

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

add(Ball b)添加小球以及paintComponent(Graphics g)画出小球

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

点击Start按钮时,调用addBall()方法,触发新线程。

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

建立一个图形界面,点击start按钮添加小球,然后让小球移动,通过调用move方法和getShape方法实现小球的移动。等小球移动到一定位置停止,再次点击start按钮,增加一个小球,重复之前操作。最后点击close关闭程序。

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

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

 一个用户就是一个进程的话,如果要让多个用户同时登录购物车系统,这时候就需要用到多线程。

3. 码云上代码提交记录##

题目集:异常、多线程(3-1, 3-2, 4-1, 4-2, 4-3)

3.1. 码云代码提交记录

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

最新文章

  1. JS Date
  2. wireshark流跟踪和分析
  3. win7下firefox浏览器不能使用
  4. Flash的坑之ExternalInterface.call只返回null值的解决办法
  5. Flex 4.0及4.6发布的网络应用在内网内会访问很慢的解决方案
  6. u检验、t检验、F检验、X2检验 (转)
  7. UVa 1152 (中途相遇法) 4 Values whose Sum is 0
  8. NSString NSMutableString copy mutableCopy retain weak strong整合
  9. 在PHP中如何连接到数据库
  10. struts2接收参数的5种方法
  11. pyspark列合并为一行
  12. checkpoint NGFW VM安装
  13. node.js(小案例)_使用mongodb对学生信息列表优化
  14. db2 活动日志激增的原因分析处理
  15. .net 打包下载
  16. 使用JS语句,利用for循环的方法创建表格的两种方法
  17. VMware workstation 14 Pro下载、安装及激活码
  18. pyspark数据准备
  19. Zabbix系统中的历史数据和趋势数据
  20. 基于Hadoop2.6.5(HA)的HBase2.0.5配置

热门文章

  1. EXT.NET复杂布局(二)——报表
  2. 禁止将http请求强制转换为https请求
  3. js prototype属性,类似.net扩展方法
  4. 8.8.1 Super关键字
  5. spring boot整合Thymeleaf的那些坑(spring boot 学习笔记之四)
  6. sql unique约束详解
  7. Struts2流程分析与工具配置
  8. 使用Groovy处理SoapUI中Json response
  9. Amazon Aurora解读(SIGMOD 2017)
  10. 为Ext添加下拉框和日期组件