• 201521123075 《Java程序设计》第10周学习总结


    1. 本周学习总结

    2. 书面作业

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

    1.finally

    题目4-2

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

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

    • finally里的代码无论前方代码是否抛出异常都会执行
    • 要注意resource是否是空指针
    • 要在finally里面对resource.close()进行异常捕获

    2.用异常改进ArrayIntegerStack

    题目4-3

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

    2.2 实验总结

    • 要注意top指针的自动加减
    • 如果栈满,直接抛出栈满的异常,栈空也一样

    3.自定义异常

    题目5-4

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

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

    • 自定义异常内部要调用super(s)
    • 根据是否需要try-catch选择继承的异常类
    • 抛出异常的时候要显示异常信息,便于使用者了解

    4.读取文件并组装对象

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

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

    关键代码:

    运行截图:

    5.学会使用Eclipse进行调试

    观看相关调试视频

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

    • 1.设置断点
    • 2.进入Debug界面
    • 3.进行调试

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

    • F5(step into):跳入函数内部,要检查函数内部具体运行时使用
    • F6(step over):跳过某个函数
    • F7(step return):从函数里跳出,某个函数有很多语句,想中途跳出这个函数时使用。

    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()));
        });
    

    6.4 实验总结

    • 4-1 重写run()方法
    • 4-2 记住要判断word是否为null,通过捕获异常来终止线程,使用sleep()方法抛出一个Exception异常,在run方法中捕获这个异常,让线程安全退出。

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

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

    答:BallRunnable是支持多线程的类,它实现了Runnable接口,这个类用于控制小球的行动路线
    

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

    答:第一是移动小球到下一个位置,如果它击中一个边缘,使其反向运动;
       第二是获取当前位置的小球的形状。
    

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

    答:第一是球的绘画,第二是在面板上添加一个球。
    

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

    答:点击addButton按钮添加一个小球,然后启动一个新线程。
    

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

    答:建立一个Jframe,加入显示小球运动的组件,然后点击addButton按钮添加小球,并且开始移动,每点击一次addButton按钮就会添加一个小球,在最后一个小球运动到规定位置后就停止了。
    

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

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

    答:可能存在顾客的多线程,即每一个顾客都是一个线程。
    

    3. 码云上代码提交记录

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

    3.1. 码云代码提交记录

  • 相关阅读:
    Java学习二十九天
    Java学习二十八天
    47. Permutations II 全排列可重复版本
    46. Permutations 全排列,无重复
    subset ii 子集 有重复元素
    339. Nested List Weight Sum 339.嵌套列表权重总和
    251. Flatten 2D Vector 平铺二维矩阵
    217. Contains Duplicate数组重复元素
    209. Minimum Size Subarray Sum 结果大于等于目标的最小长度数组
    438. Find All Anagrams in a String 查找字符串中的所有Anagrams
  • 原文地址:https://www.cnblogs.com/tt1104/p/6785001.html
Copyright © 2020-2023  润新知