zoukankan      html  css  js  c++  java
  • 201521123117 《Java程序设计》第10周学习总结

    1. 本周学习总结

    2.2. 书面作业

    1.finally

    题目4-2

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

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

    只要try执行了之后,finally总是会被执行。注意不可不恰当的使用finally(如在finally块当中抛出新的异常)。
    

    2.用异常改进ArrayIntegerStack

    题目4-3

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

    2.2 实验总结

    如果栈满,直接throw new FullStackException();抛出栈满的异常
    如果栈空,抛出throw new EmptyStackException();抛出栈满的异常
    

    3.自定义异常

    题目5-4

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

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

    自定义异常必须继承异常,如果在抛出异常时有提示信息,则要在自定义异常类中编写构造函数,super(s),使用父类的方法返回提示信息。当继承自RuntimeException或其子类时,抛出异常的方法外可不声明异常。在main方法中需要使用try-catch捕获异常并处理。
    

    4.读取文件并组装对象

    实验任务书中中的题目3:读取文件并组装对象
    给出关键代码(需出现你的学号)

    5.学会使用Eclipse进行调试

    观看相关调试视频

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

    1.设置断点。
    2.进入Debug界面。
    3.运行程序。
    4.查看状态值。
    

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

    F5:跳入当前行的方法内部,一步步执行程序段中的每一步代码。问题出现在方法内部时。
    F6:向下逐行调试。单步执行并跳过。一步步调试时用。
    F7:跳出某个方法,单步执行并返回。F5调试中确认问题不在方法内部需跳出时用。
    

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


    Labmada表达式改写:

    new Thread( ()->{
            System.out.println(mainThreadName);
            System.out.println(Thread.currentThread().getName());
            System.out.println(Arrays.toString(Thread.class.getInterfaces()));//将原来的getClass()改为Thread.class,否则编译出错。
            }       
    ).start();
    

    6.4 实验总结

    3-1 这题使用了Thread的setDaemon(boolean)方法,这个方法的作用是标记线程为守护线程,注意要在启动线程前调用,虚拟机等到所有非守护线程结束后才执行结束。
    
    3-2 这题调用了Thread的join()方法,作用是等待线程的结束,注意在启动线程后调用,调用这个方法,则主线程暂停执行,等待该线程执行完毕后继续执行。
    
    4-1 在MyThread中写有参构造函数,在run方法中使用for循环遍历输出最后打印表示信息。currentThread()表示当前的线程;getName()表示线程的名称;isAlive()表示线程的存活状态。
    
    4-2 这一题花了很长的时间,一直以为只要输入的字符串中有alien就跳出无限循环,也不能明白正常终止线程和没有终止线程的错误提示,后面在同学的帮助下才完成。注意在判断word中含有alien时候要增加一个条件word!=null,因为一开始,word的值为空,运行时提示NullPointerException异常。当word中有alien时,需要将word置null,否则会陷入无限循环中。
    
    4-3 掌握匿名内部类的使用,在Thread中实现Runnable接口的run方法。
    

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

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

    BallRunnable是支持多线程的类,实现了Runnable接口.
    这个类调用小球移动的函数.
    

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

    实现小球的移动;获得小球的大小和坐标。
    

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

    加小球;画出小球。
    

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

    按下strat按钮,触发新的事件,调用函数addBall(),在addBall()中启动新的线程。
    

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

    建立一个Jframe;点击start按钮,触发事件,调用函数addBall();运行;结束。
    

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

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

    多个用户同时登陆系统,多个消费者购买相同的物品等等。
    
  • 相关阅读:
    ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决
    asp.net core 3 Swagger 添加 Authorization [Bearer token]
    asp.net core3 发布到IIS
    asp.net core 3.1 使用log4net
    asp.net core 3 跨域
    解决'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件的方法
    ReSharper 安装没有提示功能
    Python3 安装MySQL驱动
    win10 安装 Python 和 pip 详解
    Win10下 80端口被system(pid=4)占用的解决方法
  • 原文地址:https://www.cnblogs.com/llxyy/p/6786146.html
Copyright © 2011-2022 走看看