201521044091 java 第十周学习总结
1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容。
Runnable不是线程,Thread才是,必须将实现Runnable接口的类的对象放入Thread中才能在线程中运行
比如:Runnanble task = new MyRunnable();
Thread t1 = new Thread(task);
t1.start();或者:
new Thread(new MyRunnable()).start();
2. 书面作业
本次PTA作业题集异常、多线程
1、finally
题目4-2
1.1 截图你的提交结果(出现学号)
1.2 4-2中finally中捕获异常需要注意什么?
答:finally中捕获异常需要注意在关闭资源的时候会出现异常,因为无论try-catch块有无发生异常,finally块中一定会被执行。
2、用异常改进ArrayIntegerStack
题目4-3
2.1 截图你的提交结果(出现学号)
2.2 实验总结
答:这道题,如前面接口的有写出来,这道题就很快就出来了,前面没有用指针,改一下头尾就好了
按照步骤添加相应的异常就可以了。
3、自定义异常
题目5-4
4.1 截图你的提交结果(出现学号)
4.2 自定义异常有哪几个关键点?
- 用自己编写的异常,可以不是java系统能监测到的异常
- 要用try-catch-finally处理,但一定要用户自己抛出异常(throw)
- 异常继承至
Exception还是RuntimeException要根据实际情况而定
4、读取文件并组装对象
实验任务书中中的题目3:读取文件并组装对象
给出关键代码(需出现你的学号)
try{
String line = in.nextLine();//读出myfile.txt的下一行
Scanner lineScanner = new Scanner(line);//为每一行建立一个扫描器
//System.out.println("lineScanner="+lineScanner);
lineScanner.useDelimiter(" ");//使用空格作为分隔符
//System.out.println(line);
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));
System.out.println(a1 + " " + a2 + " " + a3 + " " + a4 + " " + a5);
}catch(NoSuchElementException e){
e.printStackTrace();
} catch (NumberFormatException e){ //字符转换为整数异常捕获
e.printStackTrace();
}
Collections.sort(list,new Comparator<User>(){
@Override
public int compare(User o1, User o2) {
return o1.getAge()-o2.getAge();
}
});


5、学会使用Eclipse进行调试
观看相关调试视频
5.1 简述使用Eclipse进行调试需要几步?
- 在正确的地方设置断点
- 启动调试模式
- 查看状态值
5.2 调试时F5, F6, F7快键键各有什么不同?什么情况该使用哪个快捷键?
答:F5(step into)
F6(step over,跳过)
F7 (step return,跳出)
drop to frame (返回该方法的第一行)
F8 (resume,恢复运行直到碰到下一个断点)
watch (只看某个变量或者表达式)
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表达式改写。
Labmda表达式
Thread t1 = new Thread(()->{
System.out.println(mainThreadName);
System.out.println(Thread.currentThread().getName());
System.out.println(Arrays.toString(new Thread().getClass().getInterfaces()));
});
t1.start();
6.4 实验总结
答:4-1:一开始理解错了题目的意思,输出整数,脑袋里想的是要用数组?输出0~n-1个整数,那是不是要定义数组长度为n-1.
好吧后面发现是自己理解错了,其实只要一个循环,直接输出i就可以了。
4-2:主要是每个word只检查一次,要在检查后将word置为null,还有就是在run()函数里要记得终止。
4-3:匿名内部类的使用`Thread t1 = new Thread(new Runnable()`
3-1:守护线程的使用,主线程结束后,守护线程就会自动结束
3-2:线程的等待`join()`
7、源代码阅读:多线程程序BounceThread
7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?
答:`BallRunnable`类继承至`Runnable`接口,控制小球运动的轨迹
7.2 Ball.java这个程序只做了两件事,这两件事分别是什么?
答:`public void move(Rectangle2D bounds)`函数:移动小球的位置,如果小球碰到边缘,则反向运动回去。
` public Ellipse2D getShape()`函数:返回小球的位置。
7.3 BallComponent也只做了两件事,这两件事分别是什么?
答:` public void add(Ball b)`添加小球
` public void paintComponent(Graphics g)`在窗口画出小球的轨迹
7.4 BounceThread中,什么时候启动了新线程?
public void addBall()
{
Ball b = new Ball();
comp.add(b);
Runnable r = new BallRunnable(b, comp);
Thread t = new Thread(r);
t.start();
}
7.5 这个程序是如何实现?一个大致的执行流程是什么?
- 构建画板
- 添加小球
- 每按动一次按钮,添加一个小球,当最后一个小球运动到指定位置,程序停止
8、购物车系统中的多线程
8.1 购物车系统中可能存在哪些多线程问题?
答:一个东西可以允许开启多个用户同时添加,结算的时候也是,不然同一时间只能允许一个用户购买的
话大概就没人想淘宝买东西了吧。
3. 码云上代码提交记录
题目集:异常、多线程(3-1, 3-2, 4-1, 4-2, 4-3)
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
201521044091 java 第十周学习总结的更多相关文章
- Java 第十周学习总结
20145113<Java程序设计>第十周学习总结 基础知识 1.网络通讯的方式主要有两种 TCP(传输控制协议)方式:需要建立专用的虚拟连接以及确认传输是否正确 UDP(用户数据报协议) ...
- 201521123093 java 第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. Runnable不是线程,Thread才是,必须将实现Runnable接口的类的对象放入Thread中才能在 ...
- java第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中fin ...
- 201521123024 java 第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 finally 题目4-2 1.1 截图你的提交结果(出现学 ...
- 20145213《Java程序设计》第十周学习总结
20145213<Java程序设计>第十周学习总结 教材学习总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接 ...
- 21045308刘昊阳 《Java程序设计》第十周学习总结
21045308刘昊阳 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 狭义的网络编程范畴:程序员所作的事情 ...
- 《Java程序设计》第十周学习总结
20145224 <Java程序设计>第十周学习总结 网络编程 ·网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的 ...
- 20145236 《Java程序设计》 第十周学习总结
20145236 <Java程序设计> 第十周学习总结 Java网络编程 Java网络编程技术 Java语言是在网络环境下诞生的,所以Java语言虽然不能说是对于网络编程的支持最好的语言, ...
- 201521123061 《Java程序设计》第十周学习总结
201521123061 <Java程序设计>第十周学习总结 1. 本周学习总结 1.这周异常方面的知识主要是关于自定义异常,自定义的异常可以继承自Throwable或Exception类 ...
随机推荐
- vue如何封装自己需要的方法
因为现在vue的流行,vue的各种插件都出来了,我们公司也是使用vue做项目,我自己在做项目的时候自己去琢磨了其他的插件以及结合自己对vue和es2015的理解,自己找的了一种在vue中使用封装方法的 ...
- Android App 压力测试 monkeyrunner
Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...
- 【.Net Core 2.0 生态】-- 好文收藏
随笔分类 - .NET Core - dotNet实训营 .Net Core 2.0 生态(1).NET Standard 2.0 特性介绍和使用指南 .Net Core 2.0 生态(2).NET ...
- css盒子边框样式
边框样式有全边框和单个边框样式,可对每条边设置不同的样式 如下代码P1为全边框样式,P2为单个边框设置不同的样式: <!DOCTYPE html> <html lang=" ...
- 关于<form:select>
今天写基于SSM框架的程序,用到了<form:select>.由于一开始遇到了问题,所以在这里加以记录,供以后查看. 直接看jsp页面的代码 <%@ page language=&q ...
- 理解JavaScript的立即调用函数表达式(IIFE)
首先这是js的一种函数调用写法,叫立即执行函数表达式(IIFE,即immediately-invoked function expression).顾名思义IIFE可以让你的函数立即得到执行(废话). ...
- 【渗透课程】第四篇-Web安全之信息探测
Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...
- Java 强引用 软引用 弱引用 虚引用详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt393 众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方 ...
- 【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现
本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...
- 再起航,我的学习笔记之JavaScript设计模式20(策略模式)
策略模式 策略模式(Strategy):将定义的一组算法封装起来,使其相互之间可以替换.封装的算法具有一定的独立性,不会随客户端变化而变化. 其实策略模式在我们生活中可应用的地方还是比较多的,比如在商 ...