# 20145334赵文豪 《Java程序设计》第5周学习总结
2016-04-05 13:00
513 查看
20145334赵文豪 《Java程序设计》第5周学习总结
教材学习内容总结
第八章1.使用try、catch打包System.in.read(),声明throws java.io.IOException。
2.如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行。
3.catch括号中列出的异常不得有继承关系,否则会发生编译错误。
4.在catch区块进行完部分错误处理之后,可以使用throw将异常再抛出。
5.操作对象异常无法使用try、catch处理时,可由方法的客户端一句当时调用的环节信息进行处理,使用throw声明会抛出的异常类型或父类。
第九章
1.JavaSE中提供了满足各种需求的API,收集对象的行为,都定义在java.collection中,既能收集对象也能驱逐对象。
2.如果手机是具有索引顺序,可以使用数组。
3.List是一种Collection,作用是收集对象,并以索引的方式保留手机的对象顺序
4.ArrayListArrayList特性:数组在内存中会是连续的线性空间,根据索引随机存取时速度快,如果操作上有这类需求时,像是排序,就可使用ArrayList,可得到较好的速度表现。
5.LinkedList在操作List接口时,采用了链接(Link)结构。
6.在收集过程中若有相同对象,则不再重复收集,如果有这类需求,可以使用Set接口的操作对象。
7.HashSet的操作概念是,在内存中开设空间,每个空间会有个哈希编码。;Queue继承自Collection,所以也具有Collection的add()、remove()、element()等方法,然而Queue定义了自己的offer()、poll()与peek()等方法,最主要的差别之一在于:add()、remove()、element()等方法操作失败时会抛出异常,而offer()、poll()与peek()等方法操作失败时会返回特定值。
8.如果对象有操作Queue,并打算以队列方式使用,且队列长度受限,通常建议使用offer()、poll()与peek()等方法。LinkedList不仅操作了List接口,与操作了Queue的行为,所以可以将LinkedList当作队列来使用。
教材学习中的问题和解决过程
关于catch:catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的方法。
import java.util.*; public class Average2 { public static void main(String[] args){ try{ Scanner scanner = new Scanner(System.in); double sum = 0; int count = 0; int number; while(true){ number = scanner.nextInt(); if(number==0){ break; } sum+=number; count++; } System.out.printf("平均%.2f%n", sum/count); }catch (InputMismatchException ex){ System.out.println("必须输入整数"); } } }
关于Throw:
Throw:throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class FileUtil { public static String readFile(String name)throws FileNotFoundException{ StringBuilder builder = new StringBuilder(); try { Scanner scanner = new Scanner(new FileInputStream(name)); while (scanner.hasNext()) { builder.append(scanner.nextLine()); builder.append('\n'); } } catch (FileNotFoundException ex){ ex.printStackTrace(); throw ex; } return builder.toString(); } }
代码调试中的问题和解决过程
输入错误,会被打包成对象,可以尝试try()捕捉catch()代表错误的对象后做一些处理。代码如下:
import java.util.* ; public class Average2 { public static void main(String[] args){ try{ Scanner console=new Scanner(System.in); double sum=0; int count=0; while (true) { int number = console.nextInt(); if (number == 0) { break; } sum += number; count++; } System.out.printf("平均%.2f%n",sum/count); }catch (InputMismatchException ex){ System.out.println("必须输入整数"); } } }
使用fillInStrackTrace()方法,让异常堆栈起点为重抛异常的地方。
public class StackTraceDemo3{ public static void main(String[] args){ try{ c(); }catch(NullPointerException ex){ ex.printStackTrace(); } } static void c(){ try{ b(); }catch(NullPointerException ex){ ex.printStackTrace(); Throwable t=ex.fillInStackTrace(); throw (NullPointerException) t; } } static void b(){ a(); } static String a(){ String text=null; return text.toUpperCase(); } }
本周代码托管截图
其他(感悟、思考等,可选)
世上无难事,只怕有心人。本周的学习情况
学习进度条
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
...
相关文章推荐
- 根据依赖来编译java文件,生成class
- java 抽象类与接口的区别
- java 删除linkedlist链表中重复元素
- SpringMVC - Controller 返回值的可选类型
- 由浅入深学Java Socket
- 解决eclipse闪退
- Java eclipse生成doc文档
- Java实现大数相乘
- CompressFile工具类使用,zip和rar文件解压缩与打包操作Java源代码
- 将protege-owl API的doc文档添加到eclipse的编程坏境中
- Java入门:创建多个对象
- mybatis学习笔记二mybatis结合spring mvc实现(用户登录,数据查询)
- spring-boot启动不了,报错 java.lang.NoClassDefFoundError: javax/servlet/ServletContext
- Spring Bean在XML配置中的父子继承
- Java enum的用法详解
- myeclipse 怎么修改中文字体大小
- java 读取类内容给指定的方法追加内容
- eclipse导入class文件
- 开发环境配置-maven的安装、配置与使用-6
- struts2的通配符使用