1. 本章学习总结

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

1. 创建线程方式:
定义Thread的子类
定义实现Runnable接口的类,实现run()
2. 调用start()来启动线程,不能用run()启动线程。
3. 守护线程:
终止线程——boolean标志
线程暂停——Threads.sleep()
线程让步——Threads.yield()
等待其他线程结束——join()
4. 线程的几种状态:
New(新建)
Runnable(就绪):可运行状态
Running(运行):正在运行
Dead(死亡)
阻塞(Blocked):sleep,join,IO阻塞等

2. 书面作业

Q1. finally

题目4-2

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

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

只有执行过try语句块,finally语句块才会执行;且无论在try块的哪个地方返回,finally块都会被执行到。

Q2. 用异常改进ArrayIntegerStack

题目4-3

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

2.2 实验总结

当栈满的时候压栈、栈空的时候弹栈或者取栈顶抛出相应异常。
直接用if语句判断栈满或栈空(栈满:top>=capacity;栈空:top=0;)然后根据题目要求throw出FullStackException或EmptyStackException

Q3. 自定义异常

题目5-4

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

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

自定义异常类,必须从已有的异常类继承,而且最好是选择意思相近的异常类进行继承。
如果是Checked Exception继承Exception,如果是Uncheck Exception继承RuntimeException。

Q4. 读取文件并组装对象

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

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

try{
i++;
String a1 = lineScanner.next();//姓名
str.append(a1);
String a2 = lineScanner.next();//身份证号
str.append(a2);
String a3 = lineScanner.next();//性别
str.append(a3);
String a4 = lineScanner.next();//年龄
str.append(a4);
String a5 = lineScanner.next();//地址
str.append(a5);
while(lineScanner.hasNext()){//谨防地址只有一段
a5 += lineScanner.next();
}
userList.add(new User(a1,a2,a3,Integer.valueOf(a4),a5));
}catch(Exception e){
e.printStackTrace();
System.out.println("导入第" + i + "行时,发生以上错误!");
System.out.println("该行内容为:" + str);
}
finally{
str = new StringBuffer();
}

Q5.学会使用Eclipse进行调试

观看相关调试视频

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

1. 在正确的地方设置断点
2. 开启调试模式
3. 运行程序
4. 查看状态值
5. 执行完毕或遇到问题

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

F5(step into)进入某个函数
F6(step over)跳过。 当要跳过某个语句的时候使用
F7(step return)跳出某个函数。某个函数有很多语句的时候,如果想中途跳出这个函数,使用F7。

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:设置t1为守护线程。
3-2:主线程在调用t1线程的join()方法,则被挂起,直到目标线程t1结束才恢复。
4-1:按要求重写一下run()方法
4-2:当一个word比较完了之后要将其设置为null,否则会一直比较。
4.3:重写Runnable()的run()方法。

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

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

BallRunnable,实现了Runnable接口。这个类就是调用小球移动的函数,移动之后,对界面进行重画

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

实现小球的移动,获取小球的坐标和大小。

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

添加小球,并画出来。

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

点击addButton按钮的时候会添加一个小球,启动一个新线程。

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

建立一个图像界面,加入显示小球运动的组件,点击添加按钮就会有小球出现在界面中并开始移动,每点击一次,就会多出来一个移动的小球。
最后当小球移动一定的步数之后,再停止。

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

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

有多个Frame就有多个线程。
一个顾客相当于一个线程,在出现多个顾客抢购一个物品时,有时会因物品数量为0而导致其他顾客无法购买。

3. PTA实验总结及码云上代码提交记录

3.1本周Commit历史截图

201521123114 《Java程序设计》第10周学习总结的更多相关文章

  1. 2018面向对象程序设计(Java)第10周学习指导及要求

    2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4)  学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...

  2. 面向对象程序设计(JAVA) 第10周学习指导及要求

    2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

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

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

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

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

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

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

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

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

随机推荐

  1. oracle-使用数据泵对不同用户和不同表空间的数据迁移

    oracle-使用数据泵对不同用户和不同表空间的数据迁移 ---------------------------------------------------2013/11/13 expdp和imp ...

  2. RabbitMQ --- Publish/Subscribe(发布/订阅)

    目录 RabbitMQ --- Hello Mr.Tua RabbitMQ --- Work Queues(工作队列) 前言 在第二篇文章中介绍了 Work Queues(工作队列),它适用于把一个消 ...

  3. leetcode 总结part1

    从十月份开始到现在,差不多近3个月时间吧. 中间有的时候有事没有办法刷题,也有的题目比较难,比较麻烦,会浪费很多时间,71道题,也都是简单的. 下图是最后20道刷题的记录吧. 完成自己的目标是轻松的. ...

  4. S7-200PLC间的PPI通信

    一. PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从.通信开始由计算机发起,PLC予以响应. 1).计算机按通信任务,用一定格式,向PLC发送通信命令. 2).PLC收到命令后, ...

  5. 秒懂OAuth2.0

    1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们. 一项新的技术,无非就是了解它是什么,为什 ...

  6. 卷积神经网络经验-CS231n笔记

    课程note中讲了一些工程经验,感觉很有用,记下来供自己以后查阅 相比于大的滤波器,小滤波器更受青睐.小滤波器参数更少.计算量更小.能够表达更多的特征,做反向传播时需要的内存更少. 通常不会考虑创建一 ...

  7. Selenium发展史

    Jason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持Javascri ...

  8. JSP 页面传值方法总结

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

  9. Win10家庭版重命名Administrator用户文件夹

    需要将Windows系统默认的Administrator帐号文件夹改名为我们自定义的名称.. 但是Win10家庭版找不到组策略gpedit.msc 根据微软官方有关Win10各版本操作系统中对于组策略 ...

  10. VMware Workstation 12 Player之安装林耐斯-Linux Deepin -系统

    VMware Workstation 12 Player之安装林耐斯-Linux Deepin -系统... ============= ============= ============= === ...