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

    1. 本周学习总结

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

    2. 书面作业

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

    1.finally
    题目4-2
    1.1 截图你的提交结果(出现学号)

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

    ?说实在的没懂题目什么意思(要回答什么呢,真没发现什么要注意的啊)然道是要注意子类异常放在父类异常前面(可是本题并没有出现这种情况啊)?

    2.用异常改进ArrayIntegerStack
    题目4-3
    2.1 截图你的提交结果(出现学号)

    2.2 实验总结

    读懂题目,按题目走,把之前编写的复制过来稍加改动就可以了。

    3.自定义异常
    题目5-4
    4.1 截图你的提交结果(出现学号)

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

    -首先根据是否需要try-catch选择继承的异常类
    -编写构造函数覆盖父类构造函数
    -再根据需要编写或覆盖父类方法

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

    try {
    				String a1 = lineScanner.next();//姓名
    				String a2 = lineScanner.next();//身份证号
    				String a3 = lineScanner.next();//性别
    				String a4 = lineScanner.next();//年龄
    				String a5 = lineScanner.next();//地址
    				while(lineScanner.hasNext()){//谨防地址只有一段
    					String temp=lineScanner.next();
    					if(!a5.contains(temp))
    						a5 += temp;
    				}			
    				try {
    	                if (a1.length() == 0 || a1.length() > 10) {
    	                    throw new Exception("姓名有误");
    	                }
    	                if (a2.length() == 0) {
    	                    throw new Exception("身份证号码有误");
    	                }
    	                if (!a3.equals("男") && !a3.equals("女")) {
    	                    throw new Exception("性别有错");
    	                }
    	                student.add(new User(a1, a2, a3, Integer.parseInt(a4), a5));
    	            } catch (Exception e) {
    	                System.out.println("第"+cnt+"行有误: "+ e+"      错误行内容:"+line);
    
    	            }
    				
    			} catch (Exception e) {
    				System.out.println("第"+cnt+"行有误: "+ e+"      错误行内容:"+line);
    			} 
    		}
    
    
    Collections.sort(student, (User o1, User o2) -> {
                return o1.getAge() - o2.getAge();
    		});
    

    5.学会使用Eclipse进行调试
    观看相关调试视频
    5.1 简述使用Eclipse进行调试需要几步?

    -设置断点
    -点击进入debug模式
    -然后进行调试

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

    F5:跳入方法
    F6:向下逐行调试
    F7:跳出方法
    当你想一步一步调试的时候用F6;
    当你向跳入某个方法时F5;
    当你想跳出某个方法时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表达式改写。

      Thread t1 =new Thread(()-> {   
         		   System.out.println(mainThreadName);
         		   System.out.println(Thread.currentThread().getName());
         		   System.out.println(Arrays.toString(getClass().getInterfaces()));
         		});
    

    6.4 实验总结

    3-13-2用的是守护线程
    4-14-3秒过没什么问题
    4-2耗费了点时间,主要还是认真审题读懂题意,按照题目要求来,然后要使用线程暂停两个方法都可以(sleep、yield)进行主线程和子线程的交替。

    7.源代码阅读:多线程程序BounceThread
    7.1 哪个类是支持多线程的类,它实现了什么接口。这个类做了些什么?

    BallRunnable implements Runnable,调用ball的move方法然后repaint(),然后然该线程暂停。

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

    移动球,获取小球的位置。

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

    添加球,画出球。

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

    点击按钮然后加入小球后就启动新线程。

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

    老师上课有展示过,就是建立一个图像界面,然后让小球显示出来,接着点击按钮可以看到小球移动,再点击就多出一个移动的球。就是一个球运动的过程。

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

    浏览线程、购买线程、结算线程、支付线程......

    3. 使用码云管理Java代码

    4.课外阅读 (选做)

    Java Concurrent Animated
    线程的高级知识笔记

  • 相关阅读:
    POJ 1401 Factorial
    POJ 2407 Relatives(欧拉函数)
    POJ 1730 Perfect Pth Powers(唯一分解定理)
    POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
    POJ 2551 Ones
    POJ 1163 The Triangle
    POJ 3356 AGTC
    POJ 2192 Zipper
    POJ 1080 Human Gene Functions
    POJ 1159 Palindrome(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/lch9/p/6780063.html
Copyright © 2011-2022 走看看