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. controlfile与备份恢复

    controlfile与备份恢复     数据库正常关闭,trace controlfile信息.   ************************************************ ...

  2. 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6155 Subsequence Count 矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6155 题意: 题解来自:http://www.cnblogs.com/iRedBean/p/73982 ...

  3. Python 对象引用、可变性和垃圾回收

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } 变量不是盒子 在示例所示的交互式控制台中,无法使用"变量是盒 ...

  4. noip提高组1999 导弹拦截

    导弹拦截 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题开始训练. 描述 某国为了防御敌国的导弹袭击,研发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任 ...

  5. Flask-RESTful接口开发学习笔记一:实现简单的GET请求

    1.首先安装需要依赖的第三方包: (1):Flask (2):Flask-RESTful 如何安装就不在啰嗦,pip也好,下载到本地再安装也好,看你随意. 2.我们先实现GET请求. Q:什么是GET ...

  6. JavaScript基础语句

    一.前言: 有过学习其他语言的经历,会比较好上手.但是,没有学过也无关大雅.只要认真学,都会学好.毕竟,都只是一些基础的语句.关键在于要会运用. 掌握好语句的嵌套,以及要的逻辑思维能力,就已经成功一大 ...

  7. IDE UltraEdit 图文激活+安装教程

    IDE UltraEdit 安装+激活图文.. ---------------- ---------------- ---------------- ---------------- -------- ...

  8. [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第2讲(对象的实现及全局变量的定义)

    整体展示: 一.全局变量 /*===================玩家参数==========================*/ var myPlane; //英雄对象 var leftbtn = ...

  9. Java基础---继承、抽象、接口

    一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单 ...

  10. Spring详解(四)------注解配置IOC、DI

    Annotation(注解)是JDK1.5及以后版本引入的.它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查.注解是以‘@注解名’在代码中存在的. 前面讲解 IOC 和 DI 都是通过 ...