201521123114 《Java程序设计》第10周学习总结
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周学习总结的更多相关文章
- 2018面向对象程序设计(Java)第10周学习指导及要求
2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4) 学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...
- 面向对象程序设计(JAVA) 第10周学习指导及要求
2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4) 学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结
20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...
随机推荐
- 社群系统ThinkSNS + 移动端研发周报
社群系统"ThinkSNS+"对比ThinkSNS V4系列,ThinkSNS V4系列的产品规划主要偏重于企业服务应用,注重功能的覆盖面和用户关系的逻辑处理.Thin社群系统kS ...
- PostgreSQL存储过程(3)-流程控制语句
流程控制 讲解条件语句,循环语句. 本次环境会用到表emp:下面是emp执行语句. drop table emp; create table EMP( EMPNO numeric() not null ...
- 初始MyBatis、SQL映射文件
MyBatis入门 1.MyBatis前身是iBatis,是Apache的一个开源项目,2010年这个项目迁移到了Google Code,改名为MyBatis,2013年迁移到GitHub.是一个基于 ...
- 基于FPGA的中值滤波算法实现
在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...
- 一个想法照进现实-《IT连》创业项目:聊聊最近两三事
今天打算写一篇断流水式的作文,哈,不按常规的写格式文了. 话说创业到现在,也快近半年了,时间那是飘的一个字:快! 从设想的很多很远,到被人不断告知要单点突破:从美好的远景,到现实艰难的执行:创业更像是 ...
- Node.js之操作文件系统(二)
Node.js之操作文件系统(二) 1.创建与读取目录 1.1 创建目录 在fs模块中,可以使用mkdir方法创建目录,该方法的使用方法如下: fs.mkdir(path,[mode],callbca ...
- 使用 Gitbook 打造你的电子书
本文详细讲解了 Gitbook 生成电子书的完整过程,内容包括:安装.命令.配置.文档结构.生成电子书.部署. 限于篇幅,本文不介绍任何 Gitbook 定制化页面的内容. 想看看 Gitbook 在 ...
- Andrew Ng机器学习课程笔记--week9(上)(异常检测&推荐系统)
本周内容较多,故分为上下两篇文章. 一.内容概要 1. Anomaly Detection Density Estimation Problem Motivation Gaussian Distrib ...
- python条件判断与循环
条件判断 1.python缩进规则: 如果if语句判断是True,就把缩进的语句执行了,否则,什么也不做,比如: age=20 if age >= 18: print('your age is' ...
- JavaScript--我发现!原来你是这样的JS(1)
一.前言: 前段时间看红宝书(JavaScript高级程序设计),但没有计划的去看,也没有做详细的笔记,读了之后有点空虚,感觉不对劲啊,学的东西很难记住,印象不深啊,有种挫败感,作前端的js都学不好怎 ...