20145302 《Java程序设计》第五周学习总结

教材学习内容总结

第八章

  • try catch
  1. JVM会先尝试执行try区块中的内容,若发生错误且与catch后面的类型相符,则执行catch区块中的代码。
  2. 若想在捕捉(catch)错误之后恢复程序正常执行流程,可以将try、catch区块放入while循环中。
  3. 由于JVM是尝试执行try区块,所以一旦发生错误被捕捉,那么这一次的try区块就相当于没有执行。
  • 异常继承架构
  1. 编译程序认为调用System.in.read()时可能发生错误,故要求一定要在程序中明确处理错误,解决方法如下:
try{
int ch =System.in.read();
}catch(java.io.IOException ex){
ex.printStackTrace();
}
  1. 设计错误对象都继承自java.lang.Throwable类,他有两个子类:java.lang.Error类与java.lang.Exception类。
  2. Error与其子类代表严重系统错误,如硬件层面错误、JVM错误或内存不足等问题。当Error出现时,基本是无力回天的。
  3. 若某个方法声明会抛出Throwable或子类实例,只要不属于Error java.lang.RuntimeException或其子类实例,你就必须明确使用try、catch语法处理,或者使用throws声明这个方法会抛出异常,否则编译会失败。
  4. 受检异常:API客户端必须明确处理错误。
  5. 非受检异常:编译程序不强迫API客户端在语法上进行处理,但是有可能会引发错误。
  6. 规则表示式:String的matches()方法设定\\d*,用于检查字符串中的字符是不是数字,是则返回ture。

static int nextInt(){
String input =console.next();
while(!input.matches(\\d*)){
System.out.println(“请输入数字”);
input =console.next();
}
return Integer.parseInt(input);
}
  1. 若父类异常对象在子类异常对象前被catch,那么catch子类异常对象的区块将永远不会被执行。
  2. 多重捕捉语法。注意catch括号中列出的异常不得有继承关系,否则编译错误。JDK7后,以下两段代码相等。
try{
do something...
}catch(IOException e){
e.printStackTrace();
}catch(InterruptedException e){
e.printStackTrace();
}catch(ClassCastException e){
e.printStackTrace();
}
try{
do something...
}catch(IOException | InterruptedException | ClassCastException e){
e.printStackTrace();
}
  • 要抓还是抛主要是throw的用法。
  • 如若使用继承时,父类某个方法声明throws某些异常,子类重新定义该方法时:
  1. 可以不声明throws任何异常。
  2. 可以throws父类该方法中声明的某些异常。
  3. 可以throws父类该方法中声明异常的子类。
  4. 不可以throws父类方法中未声明的其他异常。
  5. 不可以throws父类方法中声明异常的父类。
  • 贴心还是麻烦我感觉挺麻烦的,虽然他有用,但是还是麻烦。
  • 使用finally无论你想干什么,最后一定要执行关闭资源的动作。try、catch语法可以搭配使用,无论try区块中有无发生异常,若有finally区块,则一定会被执行。
  • java.lang.AutoCloseable在try括号中,越后面撰写的对象资源会越早关闭。

    第九章
  • 具有索引的List
  1. ArrayList一般在线性结构时使用。
  2. LinkedList一般在链接结构时使用。
  • 内容不重复的set顾名思义,内容不重复,set是一个用来找不重复的接口。

教材学习中的问题和解决过程

  • 问题1throw ex;是嘛?
  • 问题2throw到底是干啥用的,我原以为我把代码运行一遍就可以感受到他的作用,结果……我的心好累,我还是不明白。

代码调试中的问题和解决过程

  • 问题1之前我先用C编写了一个程序,想先把程序粘过来然后改成java的格式,然后我将那个文件关闭,创建了一个新文件来敲书上的代码,运行时选择的是新敲的代码名称,但是结果出来如下:

为什么运行了Card52,而不是新敲的代码,这我就很不懂了,咋回事。

  • 解决过程1我将Card52里面的程序内容都删除了,然后又运行了一遍,结果如下:

  • 问题2敲教材P236代码,在运行的时候没有FileUtil选项,不知道这是否与文件的存取有关。

  • 解决过程2结果……8.2.1就说了8.1.3节撰写的FileUtil范例不是很正确……大兄弟你早说啊……

本周代码托管截图



其他(感悟、思考等,可选)

  • 想说一下这周小测验的感受,真的从发卷我就懵了,脑子一片混沌,不明白题目要干啥,不知道从何下笔,是只用写这一段?还是主程序也要写?脑子乱乱的,我的天,现在想想,我的心理素质好差啊。其实,最重要的原因还是实践少了,自己编的代码少,你能看懂再多的代码,也不如自己亲自编上一段。学C语言的时候,我就是靠编代码来学的,还是得靠实践来锻炼自己。
  • 看书看到一处不懂,接着看,发现知识联系的很紧密,一个一个的小土堆就会积成一座大山,让人望而却步。
  • 这两章都是陌生的东西,要想弄懂各种具体事例,前几章的基础很重要。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 1500行 15篇 400小时
第一周 10/10 2/2 10/10 基础知识
第二周 50/100 3/3 35/35 语法知识
第三周 100/300 4/4 60/60 了解对象
第四周 150/500 5/5 75/90 面向对象
第五周 200/700 6/6 90/120 处理异常

参考资料

最新文章

  1. 页码条--字符串拼接--重写HtmlHelper
  2. java 堆栈分析2
  3. 老鸟谈谈JAVA EE的学习
  4. ajax跳转传参
  5. 【hihoCoder】1049.后序遍历
  6. Java 中的 static 使用之静态初始化块
  7. MyBatis3资料网址
  8. Maven生命周期(插件)
  9. WIN10系统 Solidworks 2015 Toolbox插件提示 failed to create toolboxl ibrary object 解决方法
  10. 基于jQuery的视频和音频播放器jPlayer
  11. pyqt5消息框QMessageBox
  12. cocos2d-x 新建项目 Cannot open include file: ‘cocos2d.h’
  13. Ansible Filter
  14. sql分页比较简单快捷的方法
  15. Fiddler抓取https证书问题
  16. jqgrid 分页 (基于ashx)
  17. C# WinForm调用UnityWebPlayer Control控件 <学习笔记1>
  18. Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
  19. #ifndef/#define/#endif使用详解
  20. selenium 单浏览器模式

热门文章

  1. [分享] 关于App Store下载到一半发生错误的问题 [复制链接]
  2. 学习ASP.NET MVC3(6)----- Filte
  3. 纯CSS序列号
  4. HQL的检索方式
  5. local unversioned, incoming add upon update问题
  6. iOS 9 配置HTTP
  7. 用linux c求最大公约数
  8. d3.js:数据可视化利器之 交互行为:响应DOM事件
  9. LeetCode—Minimum Size Subarray Sum
  10. 【opencv】cv::Mat_ 对单个元素赋值