201521123025《java程序设计》第10周学习总结
1. 本周学习总结
2. 书面作业
Q1.finally
题目4-2
1.1 截图你的提交结果(出现学号)
1.2 4-2中finally中捕获异常需要注意什么?
只有执行过try语句块,finally语句块才会执行。
无论try catch块有无发生异常,finally块中的代码一定会被执行
Q2.用异常改进ArrayIntegerStack
题目4-3
2.1 截图你的提交结果(出现学号)
2.2 实验总结
这题主要是throws和throw的用法,throws是方法可能抛出异常的声明(用在声明方法时,表示该方法可能要抛出异常);throw则是指抛出的一个具体的异常类型。
Q3.自定义异常
题目5-4
3.1 截图你的提交结果(出现学号)
3.2 自定义异常有哪几个关键点?
自定义异常要让其继承自Throwable、Exception或其子类。
自定义异常若想让别人一定要捕获处理,就继承除RuntimeException以外的Expextion及其子类;若是不用捕获也可以,就继承RuntimeException。
自定义异常尽量使用JDK已有的异常类,便于理解。
Q4.读取文件并组装对象
实验任务书中中的题目3:读取文件并组装对象
给出关键代码(需出现你的学号)
try {
if (a1.length()==0) {
throw new Exception("姓名的信息为空");
}
if (a2.length()!=18) {
throw new Exception("身份证号的信息不完整或为空");
}
if (!a3.equals("男") && !a3.equals("女")) {
throw new Exception("性别的信息不是男或女");
}
if(a4.length()<0){
throw new Exception("年龄的信息出错");
}
if(a5.length()==0){
throw new Exception("地址的信息为空");
}
} catch (Exception e) {
System.out.println(e);
}
Q5.学会使用Eclipse进行调试
观看相关调试视频
5.1 简述使用Eclipse进行调试需要几步?
1.在正确的地方设置断点
2.启动调试模式
3.使用快捷键逐步查看状态值
4.找出错误,返回java界面并修改
5.2 调试时F5, F6, F7快键键各有什么不同?什么情况该使用哪个快捷键?
F5(step into):跳入方法内部
F6(step over,跳过):向下逐行调试
F7 (step return,跳出):跳出方法
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要求主线程退出时,在main方法中所启动的线程也要自动结束,所以设置t1为守护线程。
3.2要求线程打印完后,才执行主线程main方法的最后一句,这里使用while(t1.isAlive()){}或者使用t1.join()语句确认其结束。
Q7.源代码阅读:多线程程序BounceThread
7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?
BallRunnable,实现了Runnable接口。这个类作用是调动小球移动,先move(),然后repaint(),实现了小球的移动效果,sleep()让两次相邻的移动有延时。
7.2 Ball.java这个程序只做了两件事,这两件事分别是什么?
move()实现小球移动,getShape()获得小球的坐标和形状。
7.3 BallComponent也只做了两件事,这两件事分别是什么?
add(Ball b)添加小球,paintComponent(Graphics g)画出小球。
7.4 BounceThread中,什么时候启动了新线程?
addButton(buttonPanel, "Start", new ActionListener(),点击addButton按钮的时候会调用addBall()添加一个小球,启动一个新线程。
7.5 这个程序是如何实现?一个大致的执行流程是什么?
1.建立JFrame窗口,加入显示小球运动的类。
2.点击添加按钮,调用函数addBall(),会有小球出现在界面中并开始移动。
3.多次点击添加按钮,就会有多个小球出现和移动。
4.最后close退出线程
Q8.购物车系统中的多线程
8.1 购物车系统中可能存在哪些多线程问题?
一个顾客就是一个线程,多个顾客同时购买同一件商品就会出现多线程问题。
3. 码云上代码提交记录
201521123025《java程序设计》第10周学习总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- 201521123025<<java程序设计>>第9周学习总结
1. 本周学习总结 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Array ...
- 201521123025<<java程序设计>>第4周学习总结
Q1. 本周学习总结 Q2.书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上 ...
- 201521123025 <<java程序设计>>第3周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 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简介 数据库本身是个独立运行的应用程序 撰 ...
随机推荐
- mysql对binlog的处理
--mysql对binlog的处理 ------------------------2014/05/28 Binlog是mysql以二进制形式打印的日志,它默认不加密,不压缩.每个正常的binlog文 ...
- ORACLE_RESETLOGS浅析[转]
alter database open resetlogs 这个命令我想大家都很熟悉了,那有没有想过这个resetlogs选项为什么要用?什么时候用?它的原理机制是什么?他都起哪些作用? 我们都知道数 ...
- CSSc常用样式
一.CSS常用文本属性 1.css中的颜色表示方式 1.1直接使用颜色的单词表示:red.green.blue 1.2使用颜色的十六进制表示:#ff0000,#00ff00: ...
- WebApi 的CRUD 的方法的应用
一.最近一直在忙于开发公司的新的项目和搭建公司的框架,也好久没有写博客了.对于RaidDevelopmentFramework 我有着自己的见解在应用到实际的框架中确实挺好用的,但是还是存在一部分的问 ...
- C# 移动无标题栏窗体的几种方法
第一种,手工移动. 该方法根据鼠标位置实现窗体的移动.网上有很多相关的例子,这里不再多讲. 第二种,调用系统API原理:是当鼠标左键按下时,让系统认为是在标题栏按下的.这里我们用到了winapi里的W ...
- 自制简易Linux系统
l 要求: 裁剪一个装载有网卡驱动可以上网并且使用到init的一个小系统 l 准备: 虚拟机,centos6.4 l 步骤: 一.在宿主机上添加一块硬盘,并为其安装grub 1. 在宿主机上添加一块硬 ...
- Vue.js 入门
背景 为了学习spring,准备写一个通讯录demo,实现增删改查功能. 前端页面同事推荐用vue.js,因为简单快速,当然前提是基于你对前端的html,css,js有一定的了解 资料 vue.js ...
- maven使用实战
maven使用实战 创建项目 在eclipse中创建maven项目之后,会生成.classpath / .setting / .project 三个文件或者文件夹 .classpath 这个文件是用来 ...
- 新手站长如何快速学习实践SEO?
1. 任何老鸟都是从新人开始通过慢慢不断积累,经过各式各样的失败以及彷徨之后,才让自己拥有越来越多的经验,此时信心才会逐渐出现.如果没有勇气踏出第一步去尝试的话,那么永远不可能走在网络营销这条大路上 ...
- autoconf添加gcc调试选项
autoconf生成的编译选项默认是"-g -O2".这个"-g"选项将我迷惑了,以为生成了GDB调试所需的信息,所以也就没有管后面的"-O2“选 ...