• 201521123051《Java程序设计》第十周学习总结


    1. 本周学习总结

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

    2. 书面作业

    本次PTA作业题集异常、多线程

    1.finally

    题目4-2

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

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

    无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行:
    1)在finally语句块中发生了异常。
    2)在前面的代码中用了System.exit()退出程序。
    3)程序所在的线程死亡。
    4)关闭CPU。
    

    2.用异常改进ArrayIntegerStack

    题目4-3

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

    2.2 实验总结

    public Integer push(Integer item) throws FullStackException {
    		if(this.size() >= this.arrStack.length )throw new FullStackException();;
    		if (item == null)
    			return null;
    		this.arrStack[this.top] = item;
    		this.top++;
    		return item;          
    
    	}//如果item为null,则不入栈直接返回null。如果栈满,抛出`FullStackException`。
    
    public Integer pop() throws EmptyStackException {
    		if(this.empty()) throw new EmptyStackException();
    		if (this.arrStack[top-1] == null)
    			return null;
    		this.top--;
    		return this.arrStack[top];
    	}//出栈。如果栈空,抛出EmptyStackException。否则返回
    
     public Integer peek() throws EmptyStackException {
            if(top == 0) throw new EmptyStackException();
            if (arrStack[top-1] == null) return null;
            return arrStack[top-1];
        }//获得栈顶元素。如果栈空,抛出EmptyStackException。
    
    

    3.自定义异常

    题目5-4

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

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

    用户自定义异常类,需继承Exception类。
    在程序中使用自定义异常类,大体可分为以下几个步骤。
    (1)创建自定义异常类。
    (2)在方法中通过throw关键字抛出异常对象。
    (3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
    (4)在出现异常方法的调用者中捕获并处理异常
    

    4.读取文件并组装对象

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

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

    5.学会使用Eclipse进行调试

    观看相关调试视频

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

    1.根据错误提示信息,确定错误类型
    2.确定错误发生点
    3.使用调试器进行调试:
            ①在正确的地方设置断点
            ②启动调试模式
            ③用Eclipse专门的debug perspective进行调还是
            ④查看状态值
    
    

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

     F5       --单步调试进入函数内部。
     F6       --单步调试跳过某个函数.
     F7       --由函数内部返回到调用处。
    

    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表达式改写。

    6.4 实验总结

    3-1
    要求主线程退出时,在main方法中所启动的线程也要自动结束,用到守护线程.
    `t1.setDaemon(true); `
    `t1.start();`
    
    3-2
    本题目要求线程打印完后,才执行主线程main方法的最后一句,用到join();
    
    4-1
    在MyTread类中对n进行初始化,重写一个run方法,在其中进行循环输出..
    
    4-2
    定义实现Runnable接口的类,实现它的run()方法,然后将这个类的实例作为Thread的构造方法的参数,创建Thread类的实例.
    
    

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

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

    BallRunnable是支持多线程的类,它实现了Runnable接口;调用小球移动的函数,移动之后,对界面进行重画,并睡眠一段时间。
    

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

     move(Rectangle2D bounds)//移动小球
     Ellipse2D getShape()//获取小球的坐标
    
    

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

      public void add(Ball b)//添加小球
       {
         
       }
    
       public void paintComponent(Graphics g)//画小球
       {
        
        }
    

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

    点击添加按钮的时候,先加入一个小球,然后启动新线程。
    
    

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

    显示图形界面,点击添加按钮出现一个小球并开始移动,,每点击一次则增加一个小球,重复移动轨迹.
    

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

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

    ①多个用户同时进行登录操作时.
    ②多个用户浏览同一件商品时.
    

    3. 码云上代码提交记录

    目集:异常、多线程(3-1, 3-2, 4-1, 4-2, 4-3)

    3.1. 码云代码提交记录

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

  • 相关阅读:
    我不喜欢的 Rust 特性 (之一) eager drop
    为 Windows Phone 8.1 app 解决“The type does not support direct content.”的问题
    输入10个互不相同的数字并分成5对,问有多少种分法。
    code wars quiz: toInteger
    my first emacs custom key binding
    http协议消息报头学习笔记
    移动端经常遇到的小bug
    js小技巧
    ajax
    js正则表达
  • 原文地址:https://www.cnblogs.com/xqy123/p/6783127.html
Copyright © 2020-2023  润新知