20145302张薇《Java程序设计》第五周学习总结
20145302 《Java程序设计》第五周学习总结
教材学习内容总结
第八章
- try catch
- JVM会先尝试执行try区块中的内容,若发生错误且与catch后面的类型相符,则执行catch区块中的代码。
- 若想在捕捉(catch)错误之后恢复程序正常执行流程,可以将try、catch区块放入while循环中。
- 由于JVM是尝试执行try区块,所以一旦发生错误被捕捉,那么这一次的try区块就相当于没有执行。
- 异常继承架构
- 编译程序认为调用
System.in.read()时可能发生错误,故要求一定要在程序中明确处理错误,解决方法如下:
try{
int ch =System.in.read();
}catch(java.io.IOException ex){
ex.printStackTrace();
}
- 设计错误对象都继承自
java.lang.Throwable类,他有两个子类:java.lang.Error类与java.lang.Exception类。 - Error与其子类代表严重系统错误,如硬件层面错误、JVM错误或内存不足等问题。当Error出现时,基本是无力回天的。
- 若某个方法声明会抛出
Throwable或子类实例,只要不属于Errorjava.lang.RuntimeException或其子类实例,你就必须明确使用try、catch语法处理,或者使用throws声明这个方法会抛出异常,否则编译会失败。 - 受检异常:API客户端必须明确处理错误。
- 非受检异常:编译程序不强迫API客户端在语法上进行处理,但是有可能会引发错误。
- 规则表示式: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);
}
- 若父类异常对象在子类异常对象前被catch,那么catch子类异常对象的区块将永远不会被执行。
- 多重捕捉语法。注意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某些异常,子类重新定义该方法时:
- 可以不声明throws任何异常。
- 可以throws父类该方法中声明的某些异常。
- 可以throws父类该方法中声明异常的子类。
- 不可以throws父类方法中未声明的其他异常。
- 不可以throws父类方法中声明异常的父类。
- 贴心还是麻烦我感觉挺麻烦的,虽然他有用,但是还是麻烦。
- 使用finally无论你想干什么,最后一定要执行关闭资源的动作。
try、catch语法可以搭配使用,无论try区块中有无发生异常,若有finally区块,则一定会被执行。 - java.lang.AutoCloseable在try括号中,越后面撰写的对象资源会越早关闭。
第九章 - 具有索引的List
ArrayList一般在线性结构时使用。LinkedList一般在链接结构时使用。
- 内容不重复的set顾名思义,内容不重复,set是一个用来找不重复的接口。
教材学习中的问题和解决过程
- 问题1
throw ex;是嘛? - 问题2
throw到底是干啥用的,我原以为我把代码运行一遍就可以感受到他的作用,结果……我的心好累,我还是不明白。
代码调试中的问题和解决过程
- 问题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 | 处理异常 |
参考资料
20145302张薇《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源代 ...
- 20145302张薇 《Java程序设计》第二周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...
- 20145302张薇《Java程序设计》第九周学习总结
20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...
- 20145302张薇 Java第一周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 1995年,java被公认诞生.java第一开始为了消费性数字产品(如手机)而设计,所以java本身有很 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 20145313张雪纯 《Java程序设计》8周学习总结
20145313张雪纯 <Java程序设计>8周学习总结 教材学习内容总结 java.util.logging包的优点在于提供了日志功能相关类与接口,不必额外配置日志组件就可以在标准jav ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...
随机推荐
- javascript 禁止页面选取-兼容IE、Chrome和firefox浏览器
在做到一个页面需要禁止网页内容被选取的时候,碰到浏览器兼容的问题,解决方法如下 1.单独使用适用于IE.Chrome浏览器,主要是在head的<script>标签里面加上如下代码 docu ...
- 170322、Spring Boot 性能优化之将Servlet容器变成Undertow
需求缘起:在研究Spring Boot加速启动的时候,发现我们在实际中,可能比较注重我们服务器的内存的情况,那么我们会想如果在启动的时候,所占用的内存越低是越好,基于这个想法,我们看看Spring B ...
- bootstrap datetimepicker 日期插件超详细使用方法
日期时间选择器 目前,bootstrap有两种日历.datepicker和datetimepicker,后者是前者的拓展. Bootstrap日期和时间组件: 使用示例: 从左到右依次是十年视图.年视 ...
- Hibernate中的映射关系(一对多)
在数据库中表和表之间的关系有几种,(一对一,一对多,多对多)一对一关系:可以选择任意一方插入外键(one-to-one:one-to-one<--->many-to-one[unique= ...
- c#获取QQ音乐当前播放的歌曲名
在网上找了很久,没找到方法,自己尝试着做,还是做出来了,很简单,就几句代码. Process[] ps = Process.GetProcessesByName("QQmusic" ...
- Storm-源码分析- Component ,Executor ,Task之间关系
Component包含Executor(threads)的个数 在StormBase中的num-executors, 这对应于你写topology代码时, 为每个component指定的并发数(通过s ...
- 设计模式之——迭代器模式
设计模式是开发者前辈们给我们后背的一个经验总结.有效的使用设计模式,能够帮助我们编写可复用的类.所谓"可复用",就是指将类实现为一个组件,当一个组件发生改变时,不需要对其他组件进行 ...
- Sublime Text 配置成 C++ IDE
在Windows中将Sublime Text配置成C++的IDE.首先,为了运行C++需要安装g++编译器,g++可直接在codeblocks中找到.codeblock的官网下载地址是http://w ...
- python学习笔记(九)函数返回多个值,列表生成式,循环多个变量,入参格式声明
一.函数返回多个值 1.函数如果返回多个值的话,它会把这几个值放到一个元组里面2.函数如果返回多个值的话,也可以用多个变量来接收 def say(): num1 = num2 = num3 = ret ...
- python将图片转化为字符图
最近看到将图片转化为字符图的小实验,我觉得很有趣,所以决定自己实现一下. 步骤和原理如下: 读取图片的灰度值矩阵(0-255之间),灰度值矩阵主要反映的是图片的黑白程度,越黑越接近与0,越白越接近于2 ...