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程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- JS 中substring() , substr(), slice() 的区别
substr(start, length) : 截取从start索引开始的字符,长度为length的字符串 substring(start, end) : 截取从start索引开始的字符,以end索引 ...
- Scala快速入门-函数组合
compose&andThen 两个函数组装为一个函数,compose和andThen相反 def f(test: String):String = { "f(" + te ...
- virtualenv是什么?virtualenv的安装及pycharm的配置和使用
virtualenv是什么? virtualenv是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.简单的说就是一 ...
- node+express搭建个人网站(2)
node+express搭建个人网站(1)这一节中成功启动了一个网站但还很简陋,仅仅打印了一个helloworld的网页 作为个人网站,我们当然想输出自己设计好的网页, 我们借助 Express 应用 ...
- PC和FPGA间的串口通信实现
应用笔记 V1.0 2015/03/26 PC和FPGA间的串口通信实现 概述 本文将介绍PC和FPGA间的串口通信实现的基本思路和Verilog代码,对于通信而言,收发双方都要有相应的控制. ...
- js function的方法名是一个变量 能被重复定义 当变量名一致时候 会使用最后一个function
- addEventListener和attachEvent区别
addEventListener()是标准的绑定事件监听函数的方法,是W3C所支持的,Chrome.FireFox.Opera.Safari.IE9.0及其以上版本都支持该函数:但是,IE8.0及其以 ...
- debug - taotao项目 - IDEA拖动文件的自动重命名是超级巨坑, 一定要非常小心
大量的如下错误: org.springframework.beans.factory.BeanCreationException: Could not autowire field 还是要相信报错 不 ...
- Ulipad和有道词典冲突解决方法
问题现象 Ulipad和目前版本的有道词典有冲突,表现为先开有道词典,Ulipad就无法运行. 解决方法 找到Ulipad安装目录下的config.ini,添加以下两行: [server] port= ...
- [TJOI2008]彩灯 线性基
题面 题面 题解 题意:给定n个01串,求互相异或能凑出多少不同的01串. 线性基的基础应用. 对于线性基中的01串,如果我们取其中一些凑成一个新的01串,有一个重要的性质:任意2个不同方案凑出的01 ...