20145213《Java程序设计》第五周学习总结
20145213《Java程序设计》第五周学习总结
教材学习内容总结
“素衣莫起风尘叹,犹及清明可到家。”每每念此,不得不心疼自己。古人清明长假都进城耍了,还担心自己清明之前能不能回来。而我还在宿舍里叹Java,毕竟懒癌后期,不拖到周末不舒服斯基。既然写博客是周末的主旋律,那我也就跟这节奏哼上几句吧!
本周学习任务是自习学习笔记的第八,九章。个人感觉第九章的内容比第八章的异常处理难好多好多啊(伏笔),有些人可能听出了我的弦外之音了。对,我又没在写博客之前完成学习任务,即掌握第九章内容,那这次我就重点复习一下第八章的内容吧!
阿基里德曾说过“给我一个支点,我就可以撬动整个地球。”那如果在实现方法时,给一些条件,使之成立,那么就有可能引发错误了。像课本举例那样,在要求输入INT型时,输入3O,就会引发错误,输出一些奇怪的信息。第八章就是要解决这些问题。
* Java中所有的错误都会打包为对象,如果愿意,可以尝试try捕捉catch代表错误的对象后,做一些处理。例如:
import java.util.*
public class Average2{
public static void main(String[] args){
try{
Scanner console = new Scanner (System.in)
double sum = 0;
int count = 0;
while(true){
int number = console.nextInt();
if(number == 0){
break;
}
sum += number;
count++;
}
System.out.printf("平均 %.2f%n",sum/ count);
} catch (InputMismatchEcxeption ex){
System.out.println("必须输入整数");
}
}
}
以上代码在错误发生时显示更友好的错误信息。
import java.util.*
public class Average2{
public static void main(String[] args){
Scanner console = new Scanner (System.in)
double sum = 0;
int count = 0;
while(true){
try{
int number = console.nextInt();
if(number == 0){
break;
}
sum += number;
count++;
} catch (InputMismatchEcxeption ex){
System.out.println("略过非整数输入: %s %n",console.next());
}
}
System.out.printf("平均 %.2f%n",sum/ count);
}
}
以上代码可以在捕捉处理之后,尝试恢复程序正常执行流程。
- 错误会被包装为对象,这些对象都是可抛出的,因此设计错误对象都继承自
java.lang.Throwable类,它有两个子类``` java.lang.Error 与java.lang.Exception。 - Error与其子类实例代表严重系统错误,并不建议使用
try与catch来处理。 - 不属于Error、java.lang.RuntimeException或其子类实例,你就必须明确使用
try与catch来处理或者用throws声明这个方法会抛出异常。 - 正确区分受检异常与执行时期异常,这里不赘述了。
catch异常区块内容重复了,撰写是可以使用多重捕捉语法。- 操作过程中,可以使用
throws声明此方法会抛出异常类型,可由方法的客户端依据当时调用的环境信息进行处理。 - 在
catch区块进行完部分错误处理之后,可以使用throw将异常再次抛出,如果抛出的是受检异常,此方法上必须使用throws声明,如果抛出的异常是非受检异常,此时不使用throws声明。 - 多重方法调用下,想得知异常发生的根源,可以利用异常对象自动收集的堆栈追踪。直接调用对象的
printStackTrace().在使用throws重抛异常时,异常追踪堆栈起点还是异常的发生根源,而不是重抛异常的地方。 - 如果想要让异常堆栈起点为重抛异常的地方,可以使用
fillInStackTrace()。 - 使用断言,
assert关键字,具体建议请看课本P244. - 为了防止由异常引起必执行的流程中断,介意搭配
finally,若撰写有finally区块,这该区块一定会被执行。 - 自动尝试关闭资源语法,具体使用如下:
import java.io.fileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FileUtil{
public static String readFile(String name) throws FileNotFoundException {
StringBuilder text = new StringBuilder();
try(Scanner console = new Scanner (new FileInputStream(name))){
while (console.hasNext()){
text.append(console.nextLine()).append('\n');
}
}
return text.toString();
}
}
教材学习中的问题和解决过程
我现在对第九章的内容一片茫然,什么都不懂。我也试着去阅读去理解,然而效果甚微。我查过同类型的Java辅导书,却惊讶发现可能由于作者不同吧,每种辅导书的章节内容分类也是截然不同。我现在寄希望于《疯狂的Java讲义》,希望快递早点到。就像老师上课问,第九章内容有什么不懂的,请举手提问。而我就是那沉默的大多数。周四就要考试了,我会抓紧时间补上第九章的内容。
感悟
首先我希望老师可以把每周最晚提交博客时间放到每周四。因为每次考试前夕,我都激动的自习不下新知识,老把晚自习时间放在复习要考试内容上。其次,程序设计世界这么大,我想出去看看。以后每周有数据结构试验了,虽然娄老师说用Java语言做有加分,然而我还是C语言用起来比较顺手。奈何之前C语言学习不精,知识就停留在指针那部分,没有再深入了解了。恶因结恶果,鲁迅说过,时间就像海绵,只要挤总是会有的,现在我也要抽出一点时间复习C语言了。最后,敲了4周的代码,再在体会中强调实践是多么重要,感叹敲代码多么有用已经是老生常谈了。只有退潮了才知道谁在裸游,只有亲身实践过体会到乐趣才会坚持敲下去。就好比如鱼饮水,冷暖自知。
截图如下



学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 20/20 | 1/1 | 10/10 | |
| 第二周 | 200/220 | 1/2 | 15/25 | |
| 第三周 | 200/420 | 1/3 | 15/40 | |
| 第四周 | 200/620 | 1/4 | 15/55 | |
| 第五周 | 100/720 | 1/5 | 10/65 |
参考资料
*Java学习笔记(第8版)
*《Java学习笔记(第8版)》学习指导
20145213《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源代 ...
- 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简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- 处理dataTable的行和列数据
DataTable dt = null; foreach (DataRow dr in dt.Rows) { ; j < dr.ItemArray.Length; j++) { tempColu ...
- Android中设定背景图片平铺。
注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在做Android开发时,我们常常需要为程序设定一个背景,但由于现在的Android设备尺寸不一,如果随便设置一个图片为背景,那么很 ...
- Linux上安装五笔
1.安装# yum install ibus-table-chinese-wubi-jidian 2.设置ibus平台,添加五笔输入法# ibus-setup 3.#gsettings set org ...
- FineUI第十二天---锚点布局
锚点布局的典型结构: <x:Panel Layout="Anchor" runat="server"> <Items ...
- 【转】AspNetPager分页控件用法
AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码: 1.首先到www.w ...
- PHP一句话过狗、卫士、D盾等免杀思路!
原文转载于:http://www.legendsec.org/1701.html 觉得写得还算蛮科普的. 00x1.关键字拆分. 比如assert,可以写成 ‘a’.’ss’.’e’. ...
- @SerializedName注解
在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合. Gson解析json的方法我这里就不详细说明了,网上一大把的例子,我这里主要说一下使用 ...
- 剑指Offer 旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转 ...
- 极客DIY:制作一个可以面部、自主规划路径及语音识别的无人机
引言 现在大部分无人机厂商都会为第三方开发者提供无人机API接口,让他们更容易地开发无人机飞行控制应用程序,让无人机想怎么玩就怎么玩.有的API接口可以帮助开发者开发基于Web版的APP.手机APP甚 ...
- 31 GroupSock(AddressString)——live555源码阅读(四)网络
31 GroupSock(AddressString)——live555源码阅读(四)网络 31 GroupSock(AddressString)——live555源码阅读(四)网络 简介 Addre ...