1. 本周学习总结

2. 书面作业

Q1.finally

题目4-2

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

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

只有执行过try语句块,finally语句块才会执行。

无论try catch块有无发生异常,finally块中的代码一定会被执行

Q2.用异常改进ArrayIntegerStack

题目4-3

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

2.2 实验总结

这题主要是throws和throw的用法,throws是方法可能抛出异常的声明(用在声明方法时,表示该方法可能要抛出异常);throw则是指抛出的一个具体的异常类型。

Q3.自定义异常

题目5-4

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

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

自定义异常要让其继承自Throwable、Exception或其子类。

自定义异常若想让别人一定要捕获处理,就继承除RuntimeException以外的Expextion及其子类;若是不用捕获也可以,就继承RuntimeException。

自定义异常尽量使用JDK已有的异常类,便于理解。

Q4.读取文件并组装对象

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

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

try {
if (a1.length()==0) {
throw new Exception("姓名的信息为空");
}
if (a2.length()!=18) {
throw new Exception("身份证号的信息不完整或为空");
}
if (!a3.equals("男") && !a3.equals("女")) {
throw new Exception("性别的信息不是男或女");
}
if(a4.length()<0){
throw new Exception("年龄的信息出错");
}
if(a5.length()==0){
throw new Exception("地址的信息为空");
}
} catch (Exception e) {
System.out.println(e);
}

Q5.学会使用Eclipse进行调试

观看相关调试视频

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

1.在正确的地方设置断点

2.启动调试模式

3.使用快捷键逐步查看状态值

4.找出错误,返回java界面并修改

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

F5(step into):跳入方法内部

F6(step over,跳过):向下逐行调试

F7 (step return,跳出):跳出方法

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

使用System.out.println()

Q6.题集多线程

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

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



6.3 函数4-3(Runnable与匿名内部类)(截图提交结果,出现你的学号),并使用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 实验总结

3.1要求主线程退出时,在main方法中所启动的线程也要自动结束,所以设置t1为守护线程。

3.2要求线程打印完后,才执行主线程main方法的最后一句,这里使用while(t1.isAlive()){}或者使用t1.join()语句确认其结束。

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

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

BallRunnable,实现了Runnable接口。这个类作用是调动小球移动,先move(),然后repaint(),实现了小球的移动效果,sleep()让两次相邻的移动有延时。

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

move()实现小球移动,getShape()获得小球的坐标和形状。

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

add(Ball b)添加小球,paintComponent(Graphics g)画出小球。

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

addButton(buttonPanel, "Start", new ActionListener(),点击addButton按钮的时候会调用addBall()添加一个小球,启动一个新线程。

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

1.建立JFrame窗口,加入显示小球运动的类。

2.点击添加按钮,调用函数addBall(),会有小球出现在界面中并开始移动。

3.多次点击添加按钮,就会有多个小球出现和移动。

4.最后close退出线程

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

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

一个顾客就是一个线程,多个顾客同时购买同一件商品就会出现多线程问题。

3. 码云上代码提交记录

最新文章

  1. URL(待整合到HTTP书中哦)
  2. 把图标改成web字体
  3. jquery this 与javascript的this
  4. 让Dreamweaver支持less
  5. Linux命令行–初识Linux shell
  6. Learning WCF Chapter1 Exposing Multiple Service Endpoints
  7. BZOJ3231(矩阵连乘,稍有点复杂)
  8. uva 10228 - Star not a Tree?(模拟退火)
  9. 自学Zabbix3.5.4-监控项item-History and trends
  10. Android项目实战(三十九):Android集成Unity3D项目(图文详解)
  11. Linux实践篇--自动删除n天前日志
  12. yaf插件类的使用
  13. HTTP请求的502、504、499错误
  14. Django模板渲染
  15. One example to understand SemFix: Program Repair via Semantic Analysis
  16. [蓝桥杯]PREV-8.历届试题_买不到的数目
  17. QT下载区
  18. Ajax之xmlhttp.open()的用法
  19. linux下一个启动和监测多个进程的shell脚本程序
  20. 2018.4.23 linux系统

热门文章

  1. append()方法生成的元素绑定的事件失效解决办法
  2. C++构造函数初始化列表与赋值
  3. “selection does not contain a main type”解决方法
  4. 程序员/PM怎么让项目预估的时间更加准确
  5. 安卓手机测试常见BUG
  6. Spring框架IOC,DI概念理解
  7. Linux常见命令(五)——rmdir
  8. sql unique约束详解
  9. [js高手之路]设计模式系列课程-组合模式+寄生组合继承实战新闻列表
  10. Ubuntu Docker Registry 搭建私有仓库