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

    201521123122 《java程序设计》第十周实验总结


    1. 本周学习总结

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


    2. 书面作业

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

    finally

    题目4-2

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

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

    • finally总是在try之后执行,也就是说finally中的代码总是会被执行,所以可以用此函数来释放资源。

    用异常改进ArrayIntegerStack

    题目4-3

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

    2.2 实验总结

    • 在之前的pop() push() peek()函数中添加异常即可。

    自定义异常

    题目5-4

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

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

    -自定义异常要继承已有的异常才能被捕获
    -如果是unchecked exception则要继承runtime exception如果是check exception则要继承 exception
    -要告诉用户该异常是什么异常,在异常名称中体现

    读取文件并组装对象

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

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

    package text6;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.PrintWriter;
    import java.util.Scanner;
    import java.util.Arrays;
    
    public class ReadFileUsingScanner{
    	public static void main(String[] args)  throws FileNotFoundException{
    		try{
    		Scanner in = new Scanner(new File("身份证号.txt"));//为myfile.txt这个File创建一个扫描器in
    		while(in.hasNextLine()){
    		String line = in.nextLine();//读出myfile.txt的下一行
    		try{
    		Scanner lineScanner = new Scanner(line);//为每一行建立一个扫描器
    		lineScanner.useDelimiter(" ");//使用空格作为分隔符
    		String a1 = lineScanner.next();//姓名
    		String a2 = lineScanner.next();//身份证号
    		String a3 = lineScanner.next();//性别
    		String a4 = lineScanner.next();//年龄
    		String a5 = lineScanner.next();//地址
    		while(lineScanner.hasNext()){//谨防地址只有一段
    			a5 += lineScanner.next();
    					}
    		System.out.println(a1+a2+a3+a4+a5);
    		try{
    			     if (a1.length() == 0 ) {
    			        throw new Exception("姓名格式输入错误");
    			     }
    			  if (a2.length()!=18) {
    			        throw new Exception("身份证格式输入错误");
    			    }
    			 if (!a3.equals("男") && !a3.equals("女")) {
    			       throw new Exception("性别格式错误");
    			    }
    		     if(a4.length()<=0){
    		          throw new Exception("年龄格式输入错误");
    		       }
    		     if(a5.length()<=0){
    		       	 throw new Exception("地址输入错误");
    		       }
    			 } catch (Exception e) {
    			    System.out.println(e); 
    			  }
    		    } catch (Exception e) {
    			   System.out.println(e);
    			        }
    			}
    		} catch(FileNotFoundException e){
    	      	System.out.println(e);
    	    }finally{
    	       if(in!=null)
    	     in.close();
    	        
    	    }
    	}
    	}
    

    可能出现的异常有 FileNotFoundException 无法获取文件。在输入的信息方面可能也会发生报错,比如当性别输入不为男或女时,或者输入的身份证号小于18位等等,在可能发生错误的地方依次使用try-catch即可。

    学会使用Eclipse进行调试

    观看相关调试视频

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

    1.根据错误提示信息,确定错误类型,缩小出错范围、确定错误发生点。
    2.在正确的地方设置断点
    3.启动调试模式
    4.查看状态值

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

    F5:step into,跳入某个函数
    F6:step over,跳过这一行,直接执行下一行
    F7:step return,跳出这个函数

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

    System.out.println

    题集多线程

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

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


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

    6.4 实验总结

    -3-1主要是对守护线程的掌握,setDaemon(true)使该线程成为守护线程;
    -3-2主要是对join()的使用,其作用在于等待其他线程结束后,在执行此函数;
    -4-1 Thread函数的基本调用;
    -4-2 "发现属性word包含alien用contain功能,每次word执行完后要word=null;要用Thread.sleep(10),否则无法System.out.println(Thread.currentThread().getName() + " stop");
    -4-3Runable 的匿名内部类的实现
    关于Thread.Sleep(0) vs Sleep(1) vs Yeild

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

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

    BounceFrame类是支持多线程的,实现BallRunnable接口,BounceFrame类先是创建JFrame窗口,并且JFrame窗口中设有两个按钮,strat和Close来触发不同的事件(strat是创建一个新的球移动,close是关闭线程),线程实现球在JFrame窗口内移动,并在终点处停止。

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

    创建小球的坐标,大小,实现小球的移动

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

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

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

    addButton(buttonPanel, "Start", new ActionListener()),按下strat按钮,触发新的事件,调用函数addBall(),在addBall()中启动新的线程

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

    1.建立JFrame窗口
    2.添加strat和close按钮
    3.点击start按钮,触发事件,调用函数addBall()
    4.在函数中建立Runnable对象,启动线程
    5.close退出线程(退出系统)

    购物车系统中的多线程

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

    当有许多人同时购买一件商品时

    3. 码云上代码提交记录

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

    3.1. 码云代码提交记录

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

  • 相关阅读:
    LeetCode120 Triangle
    LeetCode119 Pascal's Triangle II
    LeetCode118 Pascal's Triangle
    LeetCode115 Distinct Subsequences
    LeetCode114 Flatten Binary Tree to Linked List
    LeetCode113 Path Sum II
    LeetCode112 Path Sum
    LeetCode111 Minimum Depth of Binary Tree
    Windows下搭建PHP开发环境-WEB服务器
    如何发布可用于azure的镜像文件
  • 原文地址:https://www.cnblogs.com/fenm/p/6785482.html
Copyright © 2011-2022 走看看