20155317 王新玮 2016-2017-2 《Java程序设计》第5周学习总结

教材学习内容总结

异常处理 & Collection与Map 异常继承架构

  • 错误的对象继承java.lang.Throwable类,Throwable有两个子类Java.lang.Error与java.lang.Exceptions.
  1. a.Erroe与其子类实例表示严重系统错误。
  2. b.Exception与其子类实例是异常处理。
  • 必须明确使用try,catch语法加以处理,或者用throw声明这个方法会抛出异常,否则会编译失败。
  • 受检异常:一定要处理Exception,但不属于RuntimeException.
  • 非受检异常:程序不强迫处理。RuntimeException是客户端引发的,属于客户端有关修改的内容,如果一定要处理,建议是呈现友好信息。
  1. 注:如果父类异常对象在子类异常对象前被捕捉,则catch子类异常对象区块将永远不会被执行。故先捕捉子类。

try、catch语法

  • 在使用相关程序时会有许多错误,例如下列代码 这里尝试使用try、catch语法,发现JVM会尝试执行try区块中的程序代码,如果发生错误,就会跳离错误发生点比较catch括号中声明的类型,若符合被抛出错误对象类型。 try、catch语法可以捕捉try部分的异常:
  • 无try、catch语法时,出现异常的时候程序就会报错。
  • 使用try、catch语法时,出现异常时,程序可仍以正常运行,只是把错误信息存储到Exception里。
  • 即catch功能为提取异常信息。

throw & throws

  • 方法设计流程出现异常时,可以用throws FileNotFoundException抛出异常,通过调用方法的客户端来处理。

Collection和Map架构

Collection

  • java.util.List接口中,记录每个对象的索引顺序,依照索引取回对象。
  • java.util.Set接口中,收集对象不重复,并具有集合的行为。
  • java.util.Queue接口中,收集对象时以队列方式,收集的对象加入尾端,取得对象时从前端。
  • java.util.Deque接口中,对Queue 的两端进行加入、移除等操作。

Map

  • 即是以键值对形式的存放数据的容器,主要以哈希Map作为其常用的实现类。Lambada和泛型

Lambada

  • 该表达式主要功能为:简化匿名函数的写法,减轻程序员负担。

泛型

  • 使用Collection收集对象时,由于收集对象的形态未知,因此内部操作时,都是使用object来参考被收集的对象,取回对象时也是以object类型返回。
  • 故若想针对某类定义的行为操作,必须告诉编译程序,让对象重新扮演该类型。JDK5之后增加了泛型语法。若接口支持泛型,在操作时也会比较方便,只要声明参考时有指定类型,那么创建对象时就不用再写类型了。
  • 泛型也可以仅定义在方法上,最常见的是在静态方法上定义泛型。

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

  • 学习8.1.1时,看到try、catch捕捉错误的案例,书中只捕捉了一个错误,如果有多个错误该如何捕捉?

  • 解决:学习到8.1.2时看到书中片段
try{
事情...
}catch(IOException | InterruptedException | ClassCastException e) {
e.printStackTrace();}

  • 本周把第三章的课后操作题给编了一下,而且都能比较顺利地编出来,编写过程中遇到的一些错误也能自己发现并纠正。
  • import java.util.Scanner;public class Fibonacci {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int x = 0;int[] Fi = new int[51];Fi[0] = 0; Fi[1] = 1;System.out.println("求几个费式数?(50以内)");int num = scanner.nextInt();if (num >= 2) {for (int j = 2; j < num; j++){Fi[j] = Fi[j - 1] + Fi[j - 2];}}for (int i = 0; i < num; i++){System.out.printf("%3d;",Fi[i]);x++;if (x == 5){System.out.println();x = 0;}}}
    }

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

  • public Test() throws RepletException {try {System.out.println("Test this Project!")}catch (Exception e) {throw new Exception(e.toString());}}

  • 问题:throw和throws的区别有什么啊?这里改成throw可以吗?
  1. 经过上网搜查后我发现:
  2. throws是用来声明一个方法可能抛出的所有异常信息,而throw则是指抛出的一个具体的异常类型。通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法。throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。
  • 问题2:第八章的学习是异常处理,就是我们平时编程过程中会出现的小问题都有了详细的解答。通过本章的学习我知道了使用try、catch语法,JVM会尝试tyr中的代码如果错误便能跳过错误点,比对catch中声明的类型。并且还了解了很多模块问题出现问题所提示的结果显示,以后的编程中可能会有各种各样的问题,但通过本章的学习了解到了很多问题出现的原因,下次编程若出现,便可以很快地检查对应区域代码,收获颇多。

代码托管

上周考试错题总结

  • 判断:Java中所有的对象都有equals()方法。(OK)
  • 实现一个类中的equals()方法时,一定要同时实现(hashCode())方法
  • 面向对象中,设计经验可以用(设计模式)表达
  • 判断:final可以用在类,方法,变量前。(OK)
  • Math中的abs()方法可以Override.(X)
  • 判断:接口中 int STOP等价于public static final int STOP. (ok)
  • 填空:实现接口表示(拥有行为),但不是ISA关系。
  • 判断:Math中的abs()方法可以Override.(X)

点评过的同学博客和代码

  • 20155307

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

这周又接触到了没接触过的新知识、新概念。不过凡事都讲究个基本功,感觉要是前面这些的基础知识学的不透彻不理解,后面就更别说了,肯定越来越难,好好学!

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时  
第一周 200/200 2/2 20/20  
第二周 300/500 2/4 18/38  
第三周 500/1000 3/7 22/60  
第四周 300/1300 2/9 22/90  
第五周 486/1300 2/9 21/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

(有空多看看现代软件工程 课件 软件工程师能力自我评价表)

参考资料

  • Java学习笔记(第8版)

  • 《Java学习笔记(第8版)》学习指导

  • ...

转载于:https://www.cnblogs.com/wxwddp/p/6622823.html

20155317 王新玮 2016-2017-2 《Java程序设计》第5周学习总结相关推荐

  1. 20155317王新玮《网络对抗》Exp2 后门原理与实践

    20155317王新玮<网络对抗>Exp2 后门原理与实践 一.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划 ...

  2. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  3. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  4. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  5. 20175202 《Java程序设计》第九周学习总结

    20175202 2018-2019-2 <Java程序设计>第九周学习总结 教材知识点总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称 ...

  6. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  7. 20155305乔磊2016-2017-2《Java程序设计》第二周学习总结

    20155305乔磊 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 第三章学习了基本类型 整数(short.int.long) 字节(byte) 浮点数(f ...

  8. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  9. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

最新文章

  1. 字符串类型String总结
  2. keytool生成证书_创建自签名ssl证书,Java生产jks证书
  3. python3最新稳定版本-python3稳定版
  4. GraphPad Prism 的统计显著性报告中*或**或**的含义是什么?
  5. MediatR 知多少 - 简书
  6. js 逆向分析的神器 --- v_jstools
  7. 向量距离汇总(连续值与离散值),Latex与Python实现
  8. urtracker 项目管理工具
  9. “亚马逊与开源彻底决裂”
  10. ArcGIS Server10.2服务启动不了之http://localhost:6080/arcgis/manager无法打开之arcMap 无法打开6080admin问题解决之路
  11. mysql的三种安装方式
  12. (day 22 - 全排列问题 dfs+剪枝+回溯 )剑指 Offer 38. 字符串的排列
  13. golang-thrift 使用hbase教程
  14. 华为鸿蒙系统支持5g吗,华为新机入网:预装鸿蒙OS 不支持5G网络
  15. key去掉下划线自动大写首字母工具类
  16. 使用摄像头解析二维码,且可以生成含具体信息的二维码
  17. 2018年区块链红黑榜-千氪
  18. java.exe内存占用高_windows java.exe内存暴涨解决、idea跑java\ tomcat内存无限增长
  19. 中国科大: 那些杀手都很冷[ZT]
  20. java class加载_Java 类加载

热门文章

  1. 我想开一家美团外卖店,不做堂食,有什么好的建议吗?
  2. 现在为什么不出翻盖手机了?
  3. 一枚比特币30多万,家用电脑24小时挖矿,多久才能挖到一枚?
  4. 如何找到解决问题的方法?
  5. 最简单的零成本创业模式
  6. 7000块招不了一个工人
  7. maven中pom文件中scope的作用
  8. SQL Server数据库快照
  9. ssrs 级联参数_在SSRS中使用多值参数
  10. ssms 和sql_使用T-SQL和SSMS监视事务日志传送