20155239 2016-2017-2 《Java程序设计》第5周学习总结
教材内容学习
第八章
- JAVA异常架构
Java异常是Java提供的一种识别及响应错误的一致性机制。
Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。
- Java异常机制用到的几个关键字:try、catch、finally、throw、throws。
try :用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
catch:用于捕获异常。catch用来捕获try语句块中发生的异常。
finally:finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。
throw:用于抛出异常。
throws:用在方法签名中,用于声明该方法可能抛出的异常。
try...catch用法 如图教材实例:
编入try catch方法
其中出现IputMisamatchExceotion,表示不符合Scanner对象预期,因为Scanner对象预期下一个字符串本身要代表的数字。通观察结果我们发现,并没有执行++System.out.printf("平均 %.2f%n", sum/count);++
这个范例示范了如何运行try、catch,在发生错误时显示更友好的错误信息。有时在错误处理之后,尝试恢复正常流程。
try...finally用法:
与其他语言的模型相比,finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally可以维护对象的内部状态,并可以清理非内存资源。 如果没有 finally,代码就会很费解。
finally 块必须与 try 或 try/catch 块配合使用。此外,不可能退出 try 块而不执行其 finally 块。
图示
此程序先将finally区块执行,在将值返回
- throw与throws关键字的用法区别
抛出异常
抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同。
系统自动抛异常
当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常。如:
图
系统会自动抛出ArithmeticException异常:
图
throw:throw是语句抛出一个异常。
语法:throw (异常对象);
throw e;
一般会用于程序出现某种逻辑时程序员主动抛出某种特定类型的异常。如:
图
throws
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
public void function() throws Exception{......}
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。
在Exception或其子对象中,RuntimeException和其子对象成为执行时期异常或称非受检异常,其他的对象称为受检对象。
父类异常对象的捕捉必须放在子类异常对象捕捉之前,否则父类异常对象永远不会被执行,编译会出错。
多重捕捉的catch中列举的异常不能有继承关系,否则编译会出错。
如果抛出的是受检异常,必须在方法上使用throws声明,如果是抛出非受检异常,就不需要throws声明。
堆栈追踪可以知道异常的根源,可以调用异常对象的printStackTrace()方法得到异常的根源和调用方法的顺序。getStackTrace()方法可以取得个别堆栈追踪元素进行处理。fillInStackTrace()方法可以让堆栈异常的起点为重抛异常的地方。
Java中数据结构和算法
其中的内容非常的丰富,要总结起来也没有太大必要,可以学习这篇文库。
++Java中的数据结构和算法++ 打开这个链接。
了解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
代码中遇到的问题与解决
代码中有中文字符,或者是括号不是对称的导致的。
代码托管
上周考试错题总结
使用JDB进行调试时单步执行命令有step和next,我们优先使用(next)。
填空:使用JDB进行调试时查看源代码的命令是(list)。
System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”..
填空:”Hello”.substring( 0,2 )的值是“He”
Java中通过(继承)和接口实现多态。
Java中一个类可以继承多个类。(X)
:Java中一个接口可以继承多个接口。(OK)
在构造方法中调用本类的构造方法,要使用(this)关键字
在构造方法中调用父类的构造方法,要使用(super)关键字
判断:final可以用在类,方法,变量前。(OK)
面向对象中,设计经验可以用(设计模式)表达“Hello”.charAt(1) 的值是(‘e’)
System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”..
“Hello”.substring( 0,2 )的值是“He”
CH06填空:在构造方法中调用本类的构造方法,要使用(this)关键字
CH06填空:在构造方法中调用父类的构造方法,要使用(super)关键字
CH07 填空:面向对象中,设计经验可以用(设计模式)表达
结对及互评
评分标准(满分10分)
从0分加到10分为止
正确使用Markdown语法(加1分):
不使用Markdown不加分
有语法错误的不加分(链接打不开,表格不对,列表不正确...)
排版混乱的不加分
模板中的要素齐全(加1分)
缺少“教材学习中的问题和解决过程”的不加分
缺少“代码调试中的问题和解决过程”的不加分
代码托管不能打开的不加分
缺少“结对及互评”的不能打开的不加分
缺少“上周考试错题总结”的不能加分
缺少“进度条”的不能加分
缺少“参考资料”的不能加分
教材学习中的问题和解决过程,
一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
一周提交次数少于20次的不加分
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
7 扣分: - 有抄袭的扣至0分
- 代码作弊的扣至0分
点评模板:
基于评分标准,我给本博客打分:(0-10)。得分情况如下:xxx
参考示例
点评过的同学博客和代码
20155202张旭
20155228周泽堃
20155208徐子涵
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第五周 | 180/400 | 1/9 | 30/90 |
计划学习时间:21小时
实际学习时间:14小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155239 2016-2017-2 《Java程序设计》第5周学习总结的更多相关文章
- 20155333 2016-2017-2 《Java程序设计》第九周学习总结
20155333 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC- ...
- 20155220 2016-2017-2 《Java程序设计》第九周学习总结
20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...
- 20155211 2016-2017-2 《Java程序设计》第九周学习总结
20155211 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 一.JDBC入门 (一)JDBC简介 厂商在操作JDBC驱动程序时,依 ...
- 20155313 2016-2017-2 《Java程序设计》第九周学习总结
20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
随机推荐
- Rails secret token bug
ArgumentError (A secret is required to generate an integrity hash for cookie session data. Use confi ...
- SIM900A基站定位调试笔记 -转
第1步:ATE1 握手并设置回显 第2步:AT+CGMR 查看SIM900的版本信号 第3步:AT+CSQ 查看信号质量 第4步:AT+CREG? 查看GSM是否注册成功 第5步:AT+CGREG? ...
- Android之读取 AndroidManifest.xml 中的数据:版本号、应用名称、自定义K-V数据(meta-data)
AndroidManifest.xml中的定义如下: <manifest xmlns:android="http://schemas.android.com/apk/res/andro ...
- mysql如何使用索引index提升查询效率?
https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html Indexes are used to find rows with specif ...
- iOS - 使用MPMoviePlayerController播放在线视频
一 MPMoviePlayerController 简介 在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地视频 ...
- 【AngularJs-模块篇-Form篇】
1.模块 <!doctype html> <html lang="en-US" ng-app="myApp"> <head> ...
- Druid的Segment Balance及其代价计算函数分析
Balance $Cost(X, Y) $ $$ J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} { ...
- 洛谷P2698 花盆Flowerpot【单调队列】
题目描述 Farmer John has been having trouble making his plants grow, and needs your help to water them p ...
- R中使用rvest爬取数据小试
总结R中使用 xpath 和 css selectors 获取标签内容(xpath功能强大,而CSS选择器通常语法比较简洁,运行速度更快些) 例:抓取下面标签的内容: <h3 class=&qu ...
- ionic 相关问题解决办法记录
1.npm无法安装模块 报code E400错误 解决办法: 删除npmrc文件. 注意:不是nodejs安装目录npm模块下的那个npmrc文件,而是在C:\Users\{账户}\下的.npmrc文 ...