1. 本周学习总结

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

2. 书面作业

本次PTA作业题集异常、多线程

1.finally

题目4-2

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

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

答:try执行后finally才会执行,并且即使try中有return,finally也会执行。

2.用异常改进ArrayIntegerStack

题目4-3

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

2.2 实验总结

答:根据题目在原有代码进行异常处理,在三个方法声明后面使用throws关键字以及对应的异常,这里不需要声明异常,还有不能写throws Exception。

3.自定义异常

题目5-4

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

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

答:(1)所有异常都必须是Exception或其子类的子类

(2)如果异常是Checked Exception,继承Exception类

(3)如果异常是Unchecked Exception,继承RuntimeException 类

(4)使用自定义异常时,尽量使用jdk已有的异常类。

4.读取文件并组装对象

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

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

public class Main201521123031 {
private static Scanner in;
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Scanner in = new Scanner(new File("身份证号.txt"));//为myfile.txt这个File创建一个扫描器in
while(in.hasNextLine()){
String line = in.nextLine();//读出myfile.txt的下一行
Scanner lineScanner = new Scanner(line);//为每一行建立一个扫描器
lineScanner.useDelimiter(" ");//使用空格作为分隔符
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();
}
System.out.println(a1+a2+a3+a4+a5);
try {
if (a1.isEmpty())
throw new Exception("姓名为空");
if (a2.isEmpty())
throw new Exception("ID为空");
if (a2.length()!=18) {
throw new Exception("ID错误");
}
if (a3.isEmpty())
throw new Exception("性别为空");
if (!a3.equals("男") && !a3.equals("女"))
throw new Exception("性别格式错误");
if (a4.isEmpty())
throw new Exception("年龄为空");
if (a5.isEmpty())
throw new Exception("地址为空");
} catch (Exception e) {
System.out.println(e);
}
}catch(Exception e){
System.out.println(e);
}
} }catch(FileNotFoundException e){
System.out.println(e);
}finally{
if(in!=null){
try{
in.close();
}catch(NullPointerException e){
System.out.println(e);
}
}
}
} }

5.学会使用Eclipse进行调试

观看相关调试视频

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

步骤:

1.设置断点

2.启动调试

3.使用F5F6F7快捷键调试

4.查看状态值

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

答:

F5(step into):跳入某个函数内部

F6(step over):跳过某个函数

F7(step return):返回上一步执行的方法

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

答:使用System.out.printfln输出结果值,判断是否为正确的结果。

6.题集多线程

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

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

6.3 函数4-3(Runnable与匿名内部类)(截图提交结果,出现你的学号),并使用Labmda表达式改写。

    new Thread(
() -> {
System.out.println(mainThreadName);
System.out.println(Thread.currentThread().getName());
System.out.println(Arrays.toString(Thread.class.getInterfaces()));
}
).start();;

6.4 实验总结

答:3-1:设置t1为守护线程即可。

3-2:先执行t1.start(),在用t1.join()确认其结束

4-1:继承Thread类,改写run()方法来创建线程。

4-2:先定义实现Runnable接口的类和它的run()方法,然后将这个类的实例作为Thread的构造方法的参数,创建Thread类的实例。

4-3:重写Runnable()的run()方法。

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

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

答:BallRunnable类支持多线程,实现了Runnable接口,它让生成的小球实现了move的效果。

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

答:一是小球的移动,二是获取小球的位置。

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

答:一是添加小球,而是画小球。

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

答:点击addButton按钮后会添加一个小球,然后就启动了新线程。

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

答:建立一个JFrame窗口,添加start和close按钮,按start按钮会调用函数addBall(),会有小球出现在界面中移动,close按钮退出系统。

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

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

答:有多少个顾客就会有多少个线程,就算是多线程问题。

3. 码云上代码提交记录

题目集:异常、多线程(3-1, 3-2, 4-1, 4-2, 4-3)

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

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

  1. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  2. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

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

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

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

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

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

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

  7. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

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

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  9. 20172325 2018-2019-2 《Java程序设计》第九周学习总结

    20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...

  10. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

随机推荐

  1. Dynamics CRM:Word Template Feature 的使用和实际遇到问题解决方案

    Word Template 是Dynamics CRM 2016 中的其中一个新的功能.Word Template 就是文档模板,用于在Dynamics CRM中定义文档模板,从而对实体记录按照文档模 ...

  2. js原型学习

    js中所有对象都存在一个隐式原型_ _proto_ _,指向创建这个对象的函数的原型prototype; 而函数的原型prototype都是Object函数的一个对象,也有隐式原型,指向的就是Obje ...

  3. VRTK实现瞬移需要添加的脚本

    进入一个新的公司,boss让实现漫游,但是新公司的Unity版本是5.6,我之前的瞬移插件不好用了,无奈之下找到一个我不熟悉的插件VRTK,但是查了很多资料也没有实现瞬移.经过自己查脚本与实验终于得到 ...

  4. Redis集群之节点管理

    Redis集群一旦启动,就不能轻易删除掉一个节点了. 需要由redis-trib.rg这个ruby脚本行使集群管理的功能.所有的哈希槽都分配于master节点 一.delete master node ...

  5. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  6. 程序员的自我修养五Windows PE/COFF

    5.1 Windows的二进制文件格式PE/COFF PE文件格式事实上与ELF同根同源,它们都是由COFF格式发展而来. 5.2 PE前身——COFF 在win下,Command Prompt fo ...

  7. Javaweb项目碰到的问题- Access denied for user 'root'@'localhost' (using password: YES)

    出现未给localhost root用户授权,主要是项目中存在的多个xxx.properties,其中用户名为root的password的值不完全相同导致的,使用eclipse的search 功能找到 ...

  8. 在WP应用中创建全局应用程序栏

    创建一个WindowsPhone应用程序(这个就不用说了吧,嘿嘿) 打开项目中的App.xaml文件 在打开的App.xaml文件中,如图所示, 在<Application.Resources& ...

  9. [C#] 如何截取完整的网页图片

    前言 有时候浏览到非常有用的网页时,我们会选择将它加入到收藏夹中,但是网站一旦过期,以后就看不到这个网页了.当然也可以将网页打印成PDF文档保存.最新的Windows 10中的Edge浏览器支持将网页 ...

  10. 文档API生成神器SandCastle使用心得

    一.功能描述 关于Sandcastle网上的参考资料相对较少,Google出来很多资料都是全英文的,相对于我这种英语渣渣看起来还是很费劲的. 言简意赅,Sandcastle主要功能是能够将C#类生成类 ...