1. 本章学习总结

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

  1. 1. 创建线程方式:
  2. 定义Thread的子类
  3. 定义实现Runnable接口的类,实现run()
  4. 2. 调用start()来启动线程,不能用run()启动线程。
  5. 3. 守护线程:
  6. 终止线程——boolean标志
  7. 线程暂停——Threads.sleep()
  8. 线程让步——Threads.yield()
  9. 等待其他线程结束——join()
  10. 4. 线程的几种状态:
  11. New(新建)
  12. Runnable(就绪):可运行状态
  13. Running(运行):正在运行
  14. Dead(死亡)
  15. 阻塞(Blocked):sleep,join,IO阻塞等

2. 书面作业

Q1. finally

题目4-2

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

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

  1. 只有执行过try语句块,finally语句块才会执行;且无论在try块的哪个地方返回,finally块都会被执行到。

Q2. 用异常改进ArrayIntegerStack

题目4-3

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

2.2 实验总结

  1. 当栈满的时候压栈、栈空的时候弹栈或者取栈顶抛出相应异常。
  2. 直接用if语句判断栈满或栈空(栈满:top>=capacity;栈空:top=0;)然后根据题目要求throwFullStackExceptionEmptyStackException

Q3. 自定义异常

题目5-4

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

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

  1. 自定义异常类,必须从已有的异常类继承,而且最好是选择意思相近的异常类进行继承。
  2. 如果是Checked Exception继承Exception,如果是Uncheck Exception继承RuntimeException

Q4. 读取文件并组装对象

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

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

  1. try{
  2. i++;
  3. String a1 = lineScanner.next();//姓名
  4. str.append(a1);
  5. String a2 = lineScanner.next();//身份证号
  6. str.append(a2);
  7. String a3 = lineScanner.next();//性别
  8. str.append(a3);
  9. String a4 = lineScanner.next();//年龄
  10. str.append(a4);
  11. String a5 = lineScanner.next();//地址
  12. str.append(a5);
  13. while(lineScanner.hasNext()){//谨防地址只有一段
  14. a5 += lineScanner.next();
  15. }
  16. userList.add(new User(a1,a2,a3,Integer.valueOf(a4),a5));
  17. }catch(Exception e){
  18. e.printStackTrace();
  19. System.out.println("导入第" + i + "行时,发生以上错误!");
  20. System.out.println("该行内容为:" + str);
  21. }
  22. finally{
  23. str = new StringBuffer();
  24. }

Q5.学会使用Eclipse进行调试

观看相关调试视频

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

  1. 1. 在正确的地方设置断点
  2. 2. 开启调试模式
  3. 3. 运行程序
  4. 4. 查看状态值
  5. 5. 执行完毕或遇到问题

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

  1. F5step into)进入某个函数
  2. F6step over)跳过。 当要跳过某个语句的时候使用
  3. F7step return)跳出某个函数。某个函数有很多语句的时候,如果想中途跳出这个函数,使用F7

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

  1. 一般使用System.out.println()输出值来调试。

Q6. 题集多线程

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

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

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

  1. Thread t1 = new Thread(
  2. () -> {
  3. System.out.println(mainThreadName);
  4. System.out.println(Thread.currentThread().getName());
  5. System.out.println(Arrays.toString(Thread.class.getInterfaces()));
  6. }
  7. );

6.4 实验总结

  1. 3-1:设置t1为守护线程。
  2. 3-2:主线程在调用t1线程的join()方法,则被挂起,直到目标线程t1结束才恢复。
  3. 4-1:按要求重写一下run()方法
  4. 4-2:当一个word比较完了之后要将其设置为null,否则会一直比较。
  5. 4.3:重写Runnable()的run()方法。

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

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

  1. BallRunnable,实现了Runnable接口。这个类就是调用小球移动的函数,移动之后,对界面进行重画

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

  1. 实现小球的移动,获取小球的坐标和大小。

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

  1. 添加小球,并画出来。

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

  1. 点击addButton按钮的时候会添加一个小球,启动一个新线程。

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

  1. 建立一个图像界面,加入显示小球运动的组件,点击添加按钮就会有小球出现在界面中并开始移动,每点击一次,就会多出来一个移动的小球。
  2. 最后当小球移动一定的步数之后,再停止。

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

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

  1. 有多个Frame就有多个线程。
  2. 一个顾客相当于一个线程,在出现多个顾客抢购一个物品时,有时会因物品数量为0而导致其他顾客无法购买。

3. PTA实验总结及码云上代码提交记录

3.1本周Commit历史截图

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

  1. 2018面向对象程序设计(Java)第10周学习指导及要求

    2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4)  学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...

  2. 面向对象程序设计(JAVA) 第10周学习指导及要求

    2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

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

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

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

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

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

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

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

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

随机推荐

  1. css实现未知高度水平垂直居中

    页面设计中,经常需要实现元素的水平垂直居中,css实现的方法有很多(列如: margin: auto.position定位.css表达式calc().使用css预处理.table等都可以实现水平居中) ...

  2. javascript中的时间版运动

    前面的话 速度版JS运动是指以速度为参照,随着路程的变化,时间随之变化:而时间版JS运动是指以时间为参照,随着路程的变化,速度随着变化.相较而言,时间版JS运动更为常用.JQ的animate就是时间版 ...

  3. WTL--SDI框架分析

    创建SDI产生的基本类:CMainFrame,CAboutDlg和CWTLView(WTL为项目名). 由此可见,不同于MFC,WTL少了文档类,它的结构就只有简单的窗口类和视图类,而至于串行化(MF ...

  4. Azkaban3.x集群部署(multiple executor mode)

    介绍 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于 ...

  5. Java微信公众平台开发之获取地理位置

    本部分需要用到微信的JS-SDK,微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...

  6. Swift语言中与C/C++和Java不同的语法(一)

    ---恢复内容开始--- Swift作为苹果官方推出的IOS开发的推荐语言,在过去的几年间受到了越来越广泛的关注,其实编程的人都知道,不同的编程语言大同小异,掌握一门新的语言关键是了解它与其它语言不同 ...

  7. quartz学习笔记(一)简单入门

    前言 quartz是Java编写的一款开源的任务调度开发框架,在项目开发中很多场景都可以用到,比如订单超期自动收货. 所谓程序源于生活,生活中也有很多场景可以用quartz来模拟,比如工作日早上七点起 ...

  8. Core Graphics框架

    在iOS中常用的框架是Quartz 2D,它是Core Graphics框架的一部分,是一个强大的二维图像绘制引擎.我们日常开发所用到的UIKit的组件都是由Core Graphics框架进行绘制的. ...

  9. C语言排序

    排序算法 快速排序 C语言快速排序qsort(数组,长度,元素大小,cmp函数(*,*))//注意函数cmp的参数为指针 #include <stdio.h> #include <s ...

  10. python基础教程(九)

    python异常 python用异常对象(exception object)来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯(Traceback, 一种错误 ...