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

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

1.2 4-2中finally中捕获异常需要注意什么?
- 只有执行过try语句块,才会执行finally中的内容
- 在try语句块中执行了return操作,finally中的操作也会照样执行
2.用异常改进ArrayIntegerStack
2.1 截图你的提交结果(出现学号)

2.2 实验总结
- 按照题目的要求编写,如果栈满抛出
FullStackException,栈空抛出EmptyStackException
3.自定义异常
题目5-4
4.1 截图你的提交结果(出现学号)

4.2 自定义异常有哪几个关键点?
- 自定义异常需要继承Exception或者其子类
Checked Exception继承Exception,Uncheck Exception继承RuntimeException
4.读取文件并组装对象
实验任务书中中的题目3:读取文件并组装对象
给出关键代码(需出现你的学号)
public class ReadFileUsingScanner201521123112{
... ...
while(in.hasNextLine()){
... ...
try{
String a1 = lineScanner.next();//姓名
if(a1.length() == 0 || a1.length() > 10)
{
System.err.println(line);
throw new IllegalAccessException("姓名出错"); }
}
String a2 = lineScanner.next();// 身份证号
if (a2.length() != 18) {
System.err.println(line);
throw new IllegalAccessException("身份号出错");
}
String a3 = lineScanner.next();// 性别
if (!a3.equals("男") && !a3.equals("女")) {
System.err.println(line);
throw new IllegalAccessException("性别出错");
}
... ...
}catch (IllegalAccessException e) {
System.out.println(e);
}
}
5.学会使用Eclipse进行调试
观看相关调试视频
5.1 简述使用Eclipse进行调试需要几步?
- 设置断点
- 开启debug模式
- 运行程序
- 解决问题
5.2 调试时F5, F6, F7快键键各有什么不同?什么情况该使用哪个快捷键?
- F5(step into):跳到某个函数的内部
- F6(step over):跳过
- F7(Step Return):跳出某个函数
5.3 除了Eclipse的调试器,你还使用什么方法调试程序?
一般会使用sysout来检测是否有执行到该部分来进行调试
6.题集多线程
6.1 程序填空3-1、3-2。(截图提交结果,出现你的学号)

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


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

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:设置守护线程即可
- 3-2:在
t1.start();之后再使用t2.start(); - 4-1:根据题目要求重新编写
run方法,然后通过循环输出0~n-1,最后调用isAlive来判断线程是否还活着 - 4-2:在word比较完之后要将其设置为null!在word比较完之后要将其设置为null!在word比较完之后要将其设置为null!
重要的事情说三遍 - 4-3:匿名内部类的使用以及run方法的重新编写
7.源代码阅读:多线程程序BounceThread
7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?
BallRunnable,它实现了Runnable接口,让小球在界面上移动,然后重画、休眠一段时间
7.2 Ball.java这个程序只做了两件事,这两件事分别是什么?
move方法控制小球的移动
getShape方法获得小球的位置和形状
7.3 BallComponent也只做了两件事,这两件事分别是什么?
add()加小球,paintComponent();画小球
7.4 BounceThread中,什么时候启动了新线程?
点击addButton的时候会添加一个小球,启动一个新线程
7.5 这个程序是如何实现?一个大致的执行流程是什么?
建立一个Jframe,然后在加入小球运动的组件,点击addBotton让小球出现然后移动小球,点击一次,出来一个移动的小球。
8.购物车系统中的多线程
8.1 购物车系统中可能存在哪些多线程问题?
让多个用户同时登陆到购物车系统的时候,就需要运用到多线程
10.选做:JavaFX入门
先完成了一个界面,后续还会在继续做

3. 码云上代码提交记录

201521123112《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整数(占 ...
随机推荐
- MATLAB垂直搜索图片中的白段
function [ top, bottom, middle, len ] = classify_by_vertical_white_belt( img ) % 垂直搜索图片中的白段, 记录具体信息. ...
- js的call,apply,bind的使用与区别
在原生js中会有三个很常见的函数,call,apply,bind 他们的作用就是改变当前函数的this指针, 但是细微来说他们还是有不同的. 1)call,apply都是执行某一函数,发现this有变 ...
- GO 语言简介(网摘)
GO 语言简介 原文出处:[陈皓 coolshell] Hello World 文件名 HELLO.GO package main //声明本文件的package名 import "fmt& ...
- Python 第八天
文章读写 读写文章是最常见的 IO 操作. 读 1.Python 中内置了open()函数,read()方法以及close()方法来打开文件 fi = open('test.html','r') co ...
- 基于laravel5.4 vue 和vue-element搭建的单页面后台CMS
介绍 该项目后台是基于vue和laravel搭建的单页面CMS系统,包含了文章管理,权限管理,用户管理等基本模块. 前台使用了传统web技术,laravel渲染搭建了个博客系统 github地址:ht ...
- BotVS趋势交易策略-RSI
BotVS趋势交易策略-RSI, 基于Python实现. RSI简单买卖测试, 默认 70-100卖出,0-30买入 参数 代码 import math def adjustFloat(v): ret ...
- Struts2流程分析与工具配置
1. 运行流程 请求 -- StrutsPrepareAndExecuteFilter 核心控制器 -– Interceptors 拦截器(实现代码功能 ) -– Action 的execuute - ...
- mongodb菜鸟整理 2 C#Driver使用
一下载 从官网上下载... 二 引用 下载完了将其解压到某个文件夹内,打开vs建立一个工程 右键引用,找到刚才解压的目录,把里面说有的dll文件全部添加就好 三 命名空间 我都是先打然后alt+shi ...
- 接口测试之webservice介绍
转自http://www.cnblogs.com/liu-ke/p/5008064.html 什么是Webservice Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web ...
- [js高手之路]设计模式系列课程-设计一个模块化扩展功能(define)和使用(use)库
模块化的诞生标志着javascript开发进入工业时代,近几年随着es6, require js( sea js ), node js崛起,特别是es6和node js自带模块加载功能,给大型程序开发 ...