#  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程序设计》第五周总结的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  3. 20155335俞昆《java程序设计》第三周总结

    20155335  2006-2007-2  <Java程序设计>第三周学习总结 ##  教材学习内容总结 首先,关键是区基本类型和类类型,,产生对象必须定义类,类是一个概念,并不存在,对 ...

  4. 20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

    学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不 ...

  5. 201671010140. 2016-2017-2 《Java程序设计》java学习第五周

    java学习第五周心得体会        本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

随机推荐

  1. 在原有的基础之上,启用NAT模型

    # 给虚拟主机实例添加一个网关 route add default gw 192.168.23.1   # 在宿主机打开网卡间转发功能 echo 1 > /proc/sys/net/ipv4/i ...

  2. Java实现的词频统计——功能改进

    本次改进是在原有功能需求及代码基础上额外做的修改,保证了原有的基础需求之外添加了新需求的功能. 功能: 1. 小文件输入——从控制台由用户输入到文件中,再对文件进行统计: 2.支持命令行输入英文作品的 ...

  3. php关于static和self的一点理解

    在使用和学习laravel的过程中,总会看到类似与static::methods或者static::variable的使用方式,对此感觉到疑惑和不解,后来查阅了相关的资料才知道他是php5.3之后新加 ...

  4. 在线webservice

    腾讯QQ在线状态 WEB 服务Endpoint: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx Disco: http:// ...

  5. 【Linux 命令】- tar 命令

    语法 tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Sc ...

  6. [CB] Windows10为什么质量变差 bug越来越多

    在 Windows 10 发布之后,微软转向了软件即服务模式,每半年释出一个新版本,通过增加更新频率将新的特性不断推送给用户. 在以前,微软产品发布周期是两到三年,其开发流程分成多个阶段:设计和策划. ...

  7. php奇葩错误:htmlspecialchars处理中文丢失

    $value = "中文中文"; $res = htmlspecialchars($value); 经过这个函数处理之后,$res就直接变成了空的字符串. 奇葩错误啊!后来发现要这 ...

  8. 【转】Base64算法详解

    原文链接:https://blog.csdn.net/robertcpp/article/details/51628647 完整的BASE64定义可见RFC 1421和RFC 2045.编码后的数据比 ...

  9. mvc4中使用部分视图局部刷新实例

    如上效果图,网页中有主视图(上)和部分视图(下),点击提交会把文本框中的值发送到服务器,再返回所有添加的信息,在下方局部更新(只更新部分视图),实现如下: 1.网页主视图代码: @model MvcA ...

  10. wp开发(三)--赚取收益篇

    App开发完毕了,是否有赚取收益的想法呢?下面很浅显地介绍两种常用赚取收益的方法. 一. 收费 在发布应用时,可以对应用进行定价,发布到商城之后,用户付费才可以下载,当然也可以提供试用版.收益状况可以 ...