#  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. ansible的介绍和一些基本模块介绍

    必须保证ansible工作站与各个node实现无密码ssh登入 ①:192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible.   ②:文件服务器1到代理服务器3 - 使用 19 ...

  2. jQuery之过滤选择器

    在原有选择器匹配的元素中进一步进行过滤的选择器 * 基本 * 内容 * 可见性 * 属性 需求 1. 选择第一个div 2. 选择最后一个class为box的元素 3. 选择所有class属性不为bo ...

  3. iOS界面设计之基础控件的学习 --- UITextField

    学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...

  4. 2nd 四人小组项目的进一步分析

    组长:林莉 组员:王东涵.宫丽君.胡丽娜 项目选题:车辆管理系统(附加相关员工管理) 项目期限:暂定十周 一.NABCD模型 N-Need 需求分析及相应功能设置 需求概述: 管理库中车辆信息.相关人 ...

  5. 第112天:javascript中函数预解析和执行阶段

    关于javascript中的函数:  1.预解析:把所有的函数定义提前,所有的变量声明提前,变量的赋值不提前  2.执行 :从上到下执行,但有例外(setTimeout,setInterval,aja ...

  6. [十六]SpringBoot 之 读取环境变量和绑定属性对象

    1.读取环境变量 凡是被spring管理的类,实现接口EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的 ...

  7. 【BZOJ4137】火星商店问题(线段树分治,可持久化Trie)

    [BZOJ4137]火星商店问题(线段树分治,可持久化Trie) 题面 洛谷 BZOJ权限题 题解 显然可以树套树,外层线段树,内层可持久化Trie来做. 所以我们需要更加优美的做法.--线段树分治. ...

  8. 【BZOJ4456】旅行者(最短路,分治)

    [BZOJ4456]旅行者(最短路,分治) 题面 BZOJ Description 小Y来到了一个新的城市旅行.她发现了这个城市的布局是网格状的,也就是有n条从东到西的道路和m条从南到北 的道路,这些 ...

  9. NOIP2017 Day1 T3 逛公园(最短路+拓扑排序+DP)

    神tm比赛时多清个零就有60了T T 首先跑出1起点和n起点的最短路,因为k只有50,所以可以DP.设f[i][j]表示比最短路多走i的长度,到j的方案数. 我们发现如果在最短路上的和零边会有后向性, ...

  10. 解题:POI 2018 Prawnicy

    题面 网上好像都是堆的做法啊......我这个不算离散化是$O(n)$的说(虽然有一坨vector可能不开O2会爆炸) 题目即是让我们求是否存在一个最长的是不少于$k$个给出区间子集的区间,如果存在输 ...