201521123096《Java程序设计》第十周学习总结
1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容。

2. 书面作业
本次PTA作业题集异常、多线程
1.finally
题目4-2
1.1 截图你的提交结果(出现学号)

1.2 4-2中finally中捕获异常需要注意什么?
不论有没有抛出异常,finally都会执行。
2.用异常改进ArrayIntegerStack
题目4-3
2.1 截图你的提交结果(出现学号)

2.2 实验总结
需要使用throws方法声明可能抛出的异常。
3.自定义异常
题目5-4
4.1 截图你的提交结果(出现学号)

4.2 自定义异常有哪几个关键点?
(1)自定义异常一定要继承已有的异常;
(2)在main方法中需要使用try-catch捕获异常并处理。
4.读取文件并组装对象
实验任务书中中的题目3:读取文件并组装对象
给出关键代码(需出现你的学号)
try{
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));
if(a1.length() == 0){
throw new Exception("名字为空");
}
if(a2.length()!=18||a2.length()==0){
throw new Exception("身份证号出错:"+a2);
}
if(!a3.equals("男")&&!a3.equals("女")){
throw new Exception("性别出错:"+a3);
}
if(a4==null){
throw new Exception("年龄为空:"+a4);
}
if(a5==null){
throw new Exception("地址为空");
}
System.out.println("a1:" + a1 + " a2:" + a2 + " a3:" + a3 + " a4:" + a4 + " a5:" + a5);
} catch (NoSuchElementException e) {
e.printStackTrace();
continue;
}catch (Exception e){ //字符转换为整数异常捕获
e.printStackTrace();
continue;
}
}
Collections.sort(list, new Comparator<User>(){
@Override
public int compare(User o1, User o2) {
return o1.getAge()-o2.getAge();
}
};
5.学会使用Eclipse进行调试
观看相关调试视频
5.1 简述使用Eclipse进行调试需要几步?
三步:
(1)设置断点;
(2)启动调试;
(3)查看状态值。
5.2 调试时F5, F6, F7快键键各有什么不同?什么情况该使用哪个快捷键?
F5快键键:step into(跳到某个函数内部)
F6快键键:step over(跳过函数,不进入函数里面)
F7快键键:step return(从函数里跳出)
5.3 除了Eclipse的调试器,你还使用什么方法调试程序?
使用System.out.println()
6.题集多线程
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.start()语句;
4-1:重写run()方法,通过继承Thread类,改写run()方法来创建线程;
4-2:当一个word比较完了之后要将其设置为null,否则会一直比较下去;
4.3:使用匿名内部类Thread t1 = new Thread(new Runnable() {}),重写一下run()方法。
7.源代码阅读:多线程程序BounceThread
7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?
BallRunnabl支持多线程,它实现了Runnable接口。这个类调用了小球移动的函数,当小球移动之后,就会对界面进行重画。
7.2 Ball.java这个程序只做了两件事,这两件事分别是什么?
(1)getShape():构造小球,并且规定了小球的初始移动位置;
(2)move():获取小球的位置。
7.3 BallComponent也只做了两件事,这两件事分别是什么?
(1)add(Ball b):添加小球;
(2)paintComponent(Graphics g):画小球。
7.4 BounceThread中,什么时候启动了新线程?
点击addButton按钮的时候
7.5 这个程序是如何实现?一个大致的执行流程是什么?
(1)建立一个图像界面;
(2)点击start按钮,添加小球)(可以重复点击start按钮);
(3)小球调用move方法移动到最终位置;
(4)点击close关闭程序。
8.购物车系统中的多线程
8.1 购物车系统中可能存在哪些多线程问题?
如果有多个用户同时购买,就是多线程问题。
3. 码云上代码提交记录
题目集:异常、多线程(3-1, 3-2, 4-1, 4-2, 4-3)
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

201521123096《Java程序设计》第十周学习总结的更多相关文章
- 201521123027 <java程序设计>第十周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...
- Java程序设计第十周学习总结
Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20172325 2018-2019-2 《Java程序设计》第九周学习总结
20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...
随机推荐
- redux深入理解之中间件(middleware)
理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. arr.reduce([callback, initi ...
- asp.net 开发 sql server 转 oracle
前段时间我们公司项目 要把sql server 转oracle 分享一下心得 也记录一下问题 开始我研究了一段时间 然后下载了 oracle 11g 版本 和 PL/SQL(客户端) 和sql ser ...
- Mongodb 监测
原文地址:伍仪洲的博客 介绍 为什么要进行监控状态,因为在实际的情况中可能会发生一下无法预计的情况,比如阻塞的问题,阻塞的原因会有很多种情况造成,如果当我们查询文档的时候发生了阻塞,那么就会影响到后面 ...
- iOS程序员的React Native开发工具集
本文整理了React Native iOS开发过程中有用的工具.服务.测试.库以及网站等. 工具 你可以选择不同的开发环境:DECO.EXPO或者你可以使用Nuclide+Atom,目前我使用EXPO ...
- textarea 空格的问题
如果textarea开始标签和结束标签中间有空格,则textarea默认有空格. <textarea name=" > </textarea> 效果图 所以,如果想去 ...
- 图解如何安装MySQL5.0
如何安装MySQL5.0数据库.. mysql-5.5.50-winx64下载地址: http://www.jb51.net/softs/363920.html 我的电脑因为提前安装了.所以需要卸载一 ...
- 谈谈个人网站的建立(二)—— lucene的使用
首先,帮忙点击一下我的网站http://www.wenzhihuai.com/ .谢谢啊,如果可以,GitHub上麻烦给个star,以后面试能讲讲这个项目,GitHub地址https://github ...
- [2017-08-25]100行CSharp代码利用dynamic写个DSL(特定领域语言)
最近看<CLR via C#(第4版)> 读到第五章末尾dynamic基元类型时,看了下作者的一个利用dynamic动态调用string类型的Contains方法(静态方法)的实现,突然发 ...
- AOP入门之静态代理
代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式一般涉及 ...
- javascript如何用递归写一个简单的树形结构
现在有一个数据,需要你渲染出对应的列表出来: var data = [ {"id":1}, {"id":2}, {"id":3}, {&qu ...