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-407-加一
407-加一 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组. 该数字按照大小进行排列,最大的数在列表的最前面. 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4 ...
- (五)hadoop系列之__集群搭建SSH无密访问多台机器
免密码ssh设置 现在确认能否不输入口令就用ssh登录localhost: $ ssh localhost 如果不输入口令就无法用ssh登陆localhost,执行下面的命令: . 并修改hosts映 ...
- paoding-rose 之 maven配置
<dependency> <!-- junit 4.7 --> <groupId>junit</groupId> <artifactId>j ...
- c语言基础笔记
一 :数据类型 1.float类型,在输出的时候可以使用 .数字 来把浮点数精确到小数点后几位,比如 printf("%.3f",float)精确到小数点后三位,不足补0 2.字 ...
- bzoj2788-Festival
题意 有 \(n\) 个变量,有两种限制,分别有 \(m_1,m_2\) 种.限制如下: \(a_x+1=a_y\) \(a_x\le a_y\) 求 \(\{x_i\}\) 集合的大小.\(n\le ...
- MethodHandle
JDK7为间接调用方法引入新的API,在java.lang.invoke包下,可以看作为反射的升级版,但它不像反射API那样显得冗长.繁重 主要的类 MethodHandle 方法句柄.对可直接执行的 ...
- 使用Xpath定位元素
1.xpath较复杂的定位方法: 现在要引用id为“J_password”的input元素,可以像下面这样写: WebElement password = driver.findElement(By. ...
- XML 增加属性
var resultDoc = new XmlDocument(); resultDoc.LoadXml("<root></root>"); resultD ...
- [AT2363] [agc012_c] Tautonym Puzzle
题目链接 AtCoder:https://agc012.contest.atcoder.jp/tasks/agc012_c 洛谷:https://www.luogu.org/problemnew/sh ...
- 数百种编程语言,而我为什么要学 Python?
是应用率最高.长期霸占排行榜的常青藤 Java?是易于上手,难以精通的 C?还是在游戏和工具领域仍占主流地位的 C++?亦或是占据 Windows 桌面应用程序半壁江山的 C#?…… 我想,每个人可能 ...