20155335俞昆《Java程序设计》第五周总结
# 20155335 《Java程序设计》第五周学习总结
## 教材学习内容总结
## 教材学习中的问题和解决过程
对于异常处理,程序中总有意想不到的状况所引发的的错误,Java中的错误也以对象方式呈现为Java.lang.Throwable的各种子类实例。
首先,Try和catch可用来捕捉程序中的错误,如果出现Java.util.InputMismatchExpection错误信息,表示不符合Scaneer对象预期,因为下一个字符串本身要代表数字,由Scaneer对象预期;使用try和catch语法,JVM会尝试执行try区块中的程序代码,如果出现错误,执行流程会跳离错误发生点,然后比较catch括号中声明的类型,是否符合被抛出的错误的对象类型,如果是的话,就执行catch区块的程序代码。java中的所有错误都会被打包为对象。
异常即指java在非编译时所发生的非正常情况或错误Java使用面向对象的方式来处理异常,它把程序中发生的每个异常都分别封装到一个对象来表示;Java对异常进行了分类,不同的类表示不同类型的异常,异常的两个子类Error和expection,前者表示严重系统错误,如硬件层面错误,JVM错误或内存不足等问题,,发生系统严重错误时,Java应用程序本身是无力回复的。Expection表示程序还能够克服和恢复的问题,其中有分为系统异常和普通异常,系统异常时软件本身的缺陷所导致的的结果,,在这种问题下 还可以让软件继续运行或者让软件死掉,普通异常用户能够克服。
Java系统异常和普通异常提供了不同解决方案,编译器强制普通异常必须try catch处理或用Throw声明继续抛给上层调用方法处理。但是系统异常可以处理与否都不重要。
继承架构会发生异常,从异常类的继承架构图可以看出Expection类扩展出数个子类,其中IOException RunntimeExpection是较常用的两种,RunntimeExpection即使不编写异常处理的程序代码,依然可以编译成功,而这种异常必须在程序运行时才有可能发生,例如:数组的索引值超出了范围,与RunntimeExpection不同的是,IOEExpection一定要编写异常处理的程序代码才行,它通常用来处理输入//输出相关操作,如文件的访问,网络的链接,当异常发生时,发生异常的语句代码会抛出一个异常类实例化对象,之后此对象与catch语句中的类的类型进行匹配,然后在相应的catch中进行处理。
当我们调用多个方法时发生异常,我们可以使用堆栈追踪异常发生的根源,这是利用异常对象自动收集的。查看堆栈追踪最简单的方法是调用异常对象printStackTrace()方法,异常的类型在堆栈信息中显示,已知根源在最顶层,调用方法的顺序如下,可使用getStacktrace()对个别的堆栈追踪元素进行处理,则会返回StackTtaceElement数组,异常根源的相关信息由数组0索引,之后可用各方法调用。如StackTraceElement的getClassName()等方法取得相应信息。
在使用Throw重抛异常时,异常的追踪堆栈起点仍然是异常的发生根源,而不是重抛异常的地方。如果想要让异常堆栈起点为重抛异常的地方,可以使用fillStackTrace()的方法,这个方法会异常堆栈会被重新装填,将起点作为重抛异常的地方并返回throwable对象,例子如下
public class StackTraceDemo{
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 ex) t;
}
}
static void b(){
a();
}
static String a(){
String text = NULL;
return text.toUpperCase();
}
关于assert
关于断言(assert),我们知道在需求或设计一个程序的时候,在程序执行期间,在何种状态下只有处于和不处于两个状态,此时可使用assert关键字,两种方法使用assert,assert
Boolean_expression和assert boolean_expression:detail_expression;如果前者为ture,则什么都不会发生,否则发生java.lang.Assertionerror,若采取第二个语法则将会detali_expression的结果显示出来,如果调用tostring()显示文字描述结果,则当中有对象。

Collection的框架如图,Collection是一个接口,他的两个分支是List和Set,List和Set都是接口,他们继承与Collection。List是有序的队列,List中可以有重复的对象,但是set没有重复元素,List和Set都有各自的实现类。
抽象出AbstractCollection抽象类能够实现绝大部分函数,通过继承AbstractCollection省去重复编码,java。util.AbstractCollection操作了List的基本行为,必要时,可以继承AbstractCollection操作自己的Collection,继承Abstractlist操作自己的List,会比直接操作Collection或List接口方便许多。
至于何时使用ArrayList,何时使用Linkedlist,,考虑使用前者,就是考虑是否使用数组特性,调整索引顺序时显得不方便;用LinkList在操作List接口时,采用(Link)结构可用链接来收集对象,,逐个参考下一个对象并计数,可取得直接索引的对象。
使用泛型
泛型的定义:其本质为参数化类型,即所有操作的数据类型被指定为一个用到时在指定一个类型,这种参数类型可以用在类接口方法的创建中。Java中的泛型只在程序源码中存在,编译后被替换为原来的原始类型。,斌且在相应的地方插入了强制转型代码。
Map中提供了一个更通用的原始存储方法,Map用于存储集合类元素。,Map定义了四种类型接口和方法。
- 1问题
操作数组对象P102页的运行结果前三个都为null
- xx1解决方案
已知类类型的初始值都为null。
Integer [] scores=new Integer[3];建立的对象个数为0,。
- xx2问题
如何让p135页的重载正确?
- xx2解决方案
将第六行中public double someMethod(int i)改为
Public double someMethod(float i)
- ...
- ...
## [代码托管](链接)
- 代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
- 代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图
## 上周考试错题总结
- 错题1及原因 3.10&9的运行结果是8,已知10为00001100,9为00001011,同或的结果为0000100,即8.
- 错题2及原因 15.被声明为protected的方法只能中继承后的子类访问,其实是错的,
类中限定为Protected的成员,可以被这个类本身,他的子类和同一个包中以及不同报的子类和同一个包中所有的其他类访问,而且继承后的成员变量和成员方法的访问权限不会改变。
- 错题3及原因
博客标题“学号 2016-2017-2 《Java程序设计》第一周学习总结”
20155335俞昆《Java程序设计》第五周总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- Java程序设计第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...
- 20155335俞昆《java程序设计》第三周总结
20155335 2006-2007-2 <Java程序设计>第三周学习总结 ## 教材学习内容总结 首先,关键是区基本类型和类类型,,产生对象必须定义类,类是一个概念,并不存在,对 ...
- 20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结
学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不 ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第五周
java学习第五周心得体会 本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- lintcode-81-数据流中位数
81-数据流中位数 数字是不断进入数组的,在每次添加一个新的数进入数组的同时返回当前新数组的中位数. 说明 中位数的定义: 中位数是排序后数组的中间值,如果有数组中有n个数,则中位数为A[(n-1)/ ...
- 03_Java基础语法_第3天(Scanner、Random、流程控制语句)_讲义
今日内容介绍 1.引用类型变量的创建及使用 2.流程控制语句之选择语句 3.流程控制语句之循环语句 4.循环高级 01创建引用类型变量公式 * A: 创建引用类型变量公式 * a: 我们要学的Scan ...
- 设计模式--Restful笔记(一)
一.REST基础概念 首先REST是 Representational State Transfer 的缩写,如果一个架构符合REST原则,它就是RESTful架构. 在REST中的一切都被认为是一种 ...
- 【acm】杀人游戏(hdu2211)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2211 杀人游戏 Time Limit: 3000/1000 MS (Java/Others) M ...
- 第203天:js---Array对象常用方法
1.shift:删除原数组的第一项,返回删除元素的值:如果数组为空则返回undefined //shift:删除原数组的第一项,返回删除元素的值:如果数组为空则返回undefined var arr ...
- 第198天:js---内置对象的原型链和其他知识
一.内置对象的原型链 1.Object原型 function test() {} alert(test.toString()); //新增属性 Object.prototype.mytest = fu ...
- BZOJ 2157 旅行(树链剖分码农题)
写了5KB,1发AC... 题意:给出一颗树,支持5种操作. 1.修改某条边的权值.2.将u到v的经过的边的权值取负.3.求u到v的经过的边的权值总和.4.求u到v的经过的边的权值最大值.5.求u到v ...
- POJ 3276 Face The Right Way(前缀和优化)
题意:有长度为N的01串,有一个操作可以选择连续K个数字取反,求最小的操作数和最小的K使得最后变成全1串.(N<=5000) 由于K是不定的,无法高斯消元. 考虑枚举K,求出最小的操作数. 显然 ...
- Zookeeper(四)Hadoop HA高可用集群搭建
一.高可就集群搭建 1.集群规划 2.集群服务器准备 (1) 修改主机名(2) 修改 IP 地址(3) 添加主机名和 IP 映射(4) 同步服务器时间(5) 关闭防火墙(6) 配置免密登录(7) 安装 ...
- Codeforces Round #441 Div. 2题解
比赛的时候E调了好久...F没时间写T T A:直接走到短的路上来回走就好了 #include<iostream> #include<cstring> #include< ...