1. 本周学习总结

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

2. 书面作业

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

Q1.finally

题目4-2

Q1.1 截图你的提交结果(出现学号)

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

只要try执行了之后,finally总是会被执行。注意不可不恰当的使用finally(如在finally块当中抛出新的异常)。

Q2.用异常改进ArrayIntegerStack

题目4-3

Q2.1 截图你的提交结果(出现学号)

Q2.2 实验总结

本题对上次实验编写的ArrayIntegerStack题目中的三个方法(push(Integer item)pop()peek())进行了修改,主要是对于异常的抛出。例如当栈满,直接throw new FullStackException()。

Q3.自定义异常

题目5-4

Q3.1 截图你的提交结果(出现学号)

Q3.2 自定义异常有哪几个关键点?

  • 自定义异常根据是否需要try-catch来确定是extends Exception还是RuntimeException。
  • 抛出异常的时候要显示异常信息,以方便用户了解相关异常信息。
  • 发现和抛出一个自定义异常一般利用if和throw语句完成。

Q4.读取文件并组装对象

实验任务书中中的题目3:读取文件并组装对象,给出关键代码(需出现你的学号)

Q5.学会使用Eclipse进行调试

观看相关调试视频

Q5.1 简述使用Eclipse进行调试需要几步?

1.设置断点。

2.进入Debug界面。

3.运行程序。

4.查看状态值。

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

F5:跳入当前行的方法内部,一步步执行程序段中的每一步代码。问题出现在方法内部时。

F6:向下逐行调试。单步执行并跳过。一步步调试时用。

F7:跳出某个方法,单步执行并返回。F5调试中确认问题不在方法内部需跳出时用。

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

用System.out.println()打印输出来调试。

Q6.题集多线程

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

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

Q6.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()));
}
);

Q6.4 实验总结

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

3-2:因为要求main方法的最后一句在线程打印完后执行,所以使用join()方法。

4-1:按题目要求编写public void run()方法覆盖Thread类的run()方法即可。

4-2:MonitorTask运行时,当word不为null后判断是否包含“alien”,之后要将word置为null;再之后可用yield()方法切换到其他线程。

4-3:Runnable接口的匿名内部类的实现。主要还是要熟练掌握匿名内部类的相关操作。

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

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

BallRunnable类,实现了Runnable接口。在这个类中调用小球移动的函数,之后repaint(),实现小球移动效果。

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

1.实现小球移动功能。2.获得小球的坐标和大小。

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

1.添加小球。2.画出小球。

Q7.4 BounceThread中,什么时候启动了新线程?

在点击按钮的时候,程序调用了addBall()方法完成添加小球的动作,启动新线程。

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

先建立Jframe窗口,加入显示小球运动的组件,每点击一次按钮在界面中出现一个小球并开始移动,小球移动一定位置后停止。

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

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

每个顾客都相当于一个线程。可以同时选购商品,但商品数量是有限的,即商品数量<顾客数量,这样就会出现后来的顾客碰见商品卖光而无法购买的情况。

3. 码云上代码提交记录

201521123022 《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. python编程基础—正则表达式

    正则表达式 正则表达式就是描述字符串排列的一套规则.利用正则表达式可以做很多事情,主要用于字符串的匹配 在实际项目中,我们经常需要找到某一类符合某种格式的信息,此时,我们可以观察这些数据的规律,然后将 ...

  2. FastJson将json解析成含有泛型对象,内部泛型对象再次解析出错的解决办法(Android)

    折腾小半天的问题,这里先感谢一下深圳的小伙子,远程帮我搞,虽然也没有搞出来==========FUCK 声明:Android开发下发生此异常,Java开发下并不会有这个问题 异常重现 简单说一下抛出异 ...

  3. 第一次使用windows版的Git,附上一些配置和最常用的git命令

    Git配置:git config --global user.name "用户姓名" git config --global user.emall "用户邮箱" ...

  4. Python下的OpenCV学习 01 —— 在Linux下安装OpenCV

    一.OpenCV简要介绍 OpenCV是一个跨平台的计算机视觉库,可以运行在Windows.Linux.MacOS等操作系统上.OpenCV提供了众多语言的接口,其中就包含了Python,Python ...

  5. Struts2学习笔记(七)——类型转换

    1.自动类型转换 Struts2内部提供大量类型转换器,用来完成数据类型转换问题: String和boolean.Boolean:完成字符串与布尔值之间的转换 String和char.Characte ...

  6. 谈谈培训机构的"骗局"给新人一些建议

    前言 本文只谈"骗局",不谈其他,绝不引战,如有错误,希望指出我会及时改正,想要讨论的可以在留言区写下你的观点和经历. 为什么要写这篇文章呢,近些年培训这个话题也比较火,很多在看这 ...

  7. poj 2763 Housewife Wind (树链剖分)

    题目链接:http://poj.org/problem?id=2763 题意: 给定一棵含n个结点的树和树的边权,共有q次操作,分为两种 0 c :求从位置s到c的距离,然后s变成c 1 a b:把第 ...

  8. hdu 3966 Aragorn's Story(树链剖分+树状数组/线段树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966 题意: 给出一棵树,并给定各个点权的值,然后有3种操作: I C1 C2 K: 把C1与C2的路 ...

  9. 超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

  10. kettle表输入条件参数设置

    @ 获取系统信息:设置命令参数 @ 表输入: