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周学习总结的更多相关文章

  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. MATLAB垂直搜索图片中的白段

    function [ top, bottom, middle, len ] = classify_by_vertical_white_belt( img ) % 垂直搜索图片中的白段, 记录具体信息. ...

  2. js的call,apply,bind的使用与区别

    在原生js中会有三个很常见的函数,call,apply,bind 他们的作用就是改变当前函数的this指针, 但是细微来说他们还是有不同的. 1)call,apply都是执行某一函数,发现this有变 ...

  3. GO 语言简介(网摘)

    GO 语言简介 原文出处:[陈皓 coolshell] Hello World 文件名 HELLO.GO package main //声明本文件的package名 import "fmt& ...

  4. Python 第八天

    文章读写 读写文章是最常见的 IO 操作. 读 1.Python 中内置了open()函数,read()方法以及close()方法来打开文件 fi = open('test.html','r') co ...

  5. 基于laravel5.4 vue 和vue-element搭建的单页面后台CMS

    介绍 该项目后台是基于vue和laravel搭建的单页面CMS系统,包含了文章管理,权限管理,用户管理等基本模块. 前台使用了传统web技术,laravel渲染搭建了个博客系统 github地址:ht ...

  6. BotVS趋势交易策略-RSI

    BotVS趋势交易策略-RSI, 基于Python实现. RSI简单买卖测试, 默认 70-100卖出,0-30买入 参数 代码 import math def adjustFloat(v): ret ...

  7. Struts2流程分析与工具配置

    1. 运行流程 请求 -- StrutsPrepareAndExecuteFilter 核心控制器 -– Interceptors 拦截器(实现代码功能 ) -– Action 的execuute - ...

  8. mongodb菜鸟整理 2 C#Driver使用

    一下载 从官网上下载... 二 引用 下载完了将其解压到某个文件夹内,打开vs建立一个工程 右键引用,找到刚才解压的目录,把里面说有的dll文件全部添加就好 三 命名空间 我都是先打然后alt+shi ...

  9. 接口测试之webservice介绍

    转自http://www.cnblogs.com/liu-ke/p/5008064.html 什么是Webservice Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web ...

  10. [js高手之路]设计模式系列课程-设计一个模块化扩展功能(define)和使用(use)库

    模块化的诞生标志着javascript开发进入工业时代,近几年随着es6, require js( sea js ), node js崛起,特别是es6和node js自带模块加载功能,给大型程序开发 ...