20155320 2016-2017-2 《Java程序设计》第五周学习总结
20155320 2016-2017-2 《Java程序设计》第五周学习总结
教材学习内容总结
错误处理
java中所有错误都会被打包为对象,可以通过try catch 代表错误的对象后做一些处理。
TtryCatchf 处理范例 Average2和Average3
运行结果为:


- 错误会被包装为对象,这些对象都是可抛出的,设计错误的对象都继承自
java.lang.Throwable类 - 如果某个方法声明抛出Throwable或子类实例,只要不是属于
Error、java.lang.RuntimeException或其子类实例,就必须1.明确使用try、catch语法加以处理2、用throws声明这个方法会抛出异常。否则会编译失败 exception及其子对象称为受检异常,必须做出处理InputMismatchException为一种RuntimeException
避免出现InputMismatchException的程序Average4运行结果为:

- String的
match()方法中设定了"\d*"表示检查字符串中的字符是不是数字。 - 如果父类异常对象在子类异常对象前被捕捉,则catch子类异常对象区块将永不执行,则会被编译程序检查出错
- catch括号中列出的异常不得有继承关系。
- 对于受检异常,如果当前环境不足以处理异常,必须使用throws声明此方法会抛出的异常类型或父类型由调用方法客户端处理,才能通过编译。
在catch区块进行完部分错误处理之后,可以使用throw将异常再抛出,在程序中如果抛出的是受检异常,则必须在方法上使用throws声明
代码范例FileUtil2- 如果使用继承时,父类某个方法声明throws某些异常,子类重新定义该方法时不可以1.throws父类方法中未声明的其他异常2.throws父类方法中声明异常的父类
查看堆栈追踪可以直接调用printStackTrace()
程序房里StackTraceDemo运行结果:

结果显示了异常类型,最顶层是异常的根源,以下是调用方法的顺序:
- 想要取得个别的堆栈追踪元素进行处理,则可以使用``getStackTrace()```,这会返回StackTraceElement数组
- 若要用堆栈追踪,程序中不可有私吞异常。
用throw重抛异常时,异常的追踪堆栈起点,仍是异常的发生根源,而不是重抛异常的地方。
程序StackTraceDemo2运行结果为:

若要堆栈起点为重抛的地方,可以使用fillInStackTrace(),并返回Throwable()对象。
程序fillStrackTrace()- 断言可以使用
assert关键字,若要执行时启动断言检查,可在执行java指令时,指定-enableassertions或是-ea自变量 因错误而抛出异常时,抛出异常处之后的程序代码就不会被执行。但若有finally区块,则finally区块一定会被执行。
程序FinallyDemo运行结果为:

- 若一个异常被catch后的处理过程引发另一个异常,通常会抛出第一个异常作为响应,addSuppressed()方法可将第二个异常记录在第一个异常中,getSuppre()可以返回Throwable[],代表先前被addSuppressed()记录的各个异常对象。
AutoCloseable接口仅定义了close()方法,只要操作这个接口,就可以套用至尝试关闭资源语法。
AutoCloseable操作程序运行结果为:

关闭资源语法课同时关闭两个以上的对象资源,中间以分号分隔,try的括号中越后面撰写的对象资源会越早被关闭
AutoClosable2运行结果为:

Collection与Map
- List是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序。
- ArrayList 是使用Object数组来保存收集的对象,根据索引随机存取时速度快但调整索引顺序时不便,且数组长度固定;LinkeList采取了链接结构,查找起来会比较没有效率,排序就比较不适合使用List。
具有索引的List
- 在收集过程中若有相同对象则不重复收集,可以使用Set接口的操作对象。String的
split()方法可以指定切割字符串的方式,split会返回String[],HashSet可实现收集对象,其toString()则会包括收集的字符串。
程序WordCount
运行结果为:
HashSet 会使用对象的
hashCode()与equals()来判断对象是否相同运行结果为:

运行结果为:

若对象有操作Queue,并打算以队列方式使用,且队列长度受限,通常建议 使用
offer(),poll()与peek()等方法。
程序RequestQueueQueue的子接口Deque就定义了这类行为,
offerLast()等操作失败时会返回特定值
程序Stack运行结果为:

泛型语法可以在设计API时指定类或方法支持泛型,并得到编译时期检查,使用<>表示支持泛型。
程序ArrayList使用Lambda可避免信息重复。
教材学习中的问题和解决过程
- 学习第九章时,对HashSet中Arrays.asList()的作用清楚,在后边又出现了
List names=Arrays.asList("Justin","Monica","Irene") 通过百度阅读了一些相关博客了解到
Arrays.asList()的作用是将数组转为List(列表)
代码调试中的问题和解决过程
- 在第八章中学习错误抛出时,我在写程序Average3时,由于不注意将trycatch的位置打在了循环的外部,结果出现了如下错误:

后通过比照课本代码,正确修改了过来,我同时通过百度发现无论是在c++还是java中,try catch似乎都不能出现在循环外。
代码托管
代码量截图:

上周考试错题总结
- 21.判断:XX是一个引用型变量,System.out.println(XX)等价于System.out.println(XX.toString()).(OK),在用println时toString可以不用打出来,是等价的
- CH06填空:实现一个类中的equals()方法时,一定要同时实现(hashCode())方法;java中许多要判断对象是否重复时,都会调用hashCode()与equals()方法,因此规格书中建议两个方法必须同时操作。
- 30.填空:面向对象中,设计经验可以用(设计模式)表达
- 4.判断:抽象类的子类可以是抽象类也可以不是。(OK);在子类中可以重新定义父类中的抽象方法
结对及互评
基于评分标准,我给本博客打分:8分。得分情况如下:
- 正确使用Markdown语法:+1
- 模板中的要素基本齐全:+1
- 教材学习中的问题和解决过程:+3
- 代码调试中的问题和解决过程:+2
- 进度条中记录学习时间与改进情况:+1
点评过的同学博客和代码
-
学习感悟及思考
本周学习了异常处理以及Collection与Map相关的内容,尤其是抛出异常部分,让我感受到了java语言的特别之处,这在学习c语言时是不曾有过的。而第九章中的不同种操作了List接口的对象优缺点与最近学习的数据结构不同存储结构的优缺点相互联系了起来,虽然这个星期学习任务较重,在一些部分的学习上遇到了困难,但感觉学习的这些专业课程开始相辅相成了起来,也是一大收获。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 15篇 | 400小时 | |
| 第一周 | 20/20 | 1/4 | 20/20 | 安装了JDK及IDEA |
| 第二周 | 144/164 | 1/5 | 18/38 | 学习了java语言的基本语法 |
| 第三周 | 447/567 | 1/6 | 20/ 58 | 掌握了一些有关对象和封装的内容 |
| 第四周 | 875/ 1442 | 1/7 | 23/81 | 学习了解了继承、接口和多态的相关问题 |
| 第五周 | 775/2250 | 1/8 | 25/106 | 学习了异常处理以及Collection与Map相关的内容 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:25小时
实际学习时间:25小时
改进情况:根据本周内容量较大本来定的是23小时,后来学了一些后发现还很难理解,于是增加了两小时的学习量。
参考资料
20155320 2016-2017-2 《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源代 ...
- 20155320 2016-2017-2《Java程序设计》第九周学习总结
20155320 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 ...
- 20155320 2016-2017-2 《Java程序设计》第二周学习总结
20155320 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 本周主要学习了java语言的基础语法,我发现与以前学过的c语言有许多共同点,无论是从一些基本 ...
- 20155326 2016-2017-2 《Java程序设计》第九周学习总结
20155326 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的 ...
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...
- 20155328 2016-2017-2 《Java程序设计》第九周学习总结
20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...
- 20155216 2016-2017-2 《Java程序设计》第九周学习总结
20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
随机推荐
- 2018 Jar_Feb_Newwords
检测钩子程序 开发一个检测钩子程序的工具 - 豆丁网http://www.docin.com/p-1363993661.html pdf掺杂病毒的方法 Java的:xml文件中跳过的二进制数据在解析 ...
- PPT汇报 评审表
评审表 团队编号 团队名称 团队项目名称 格式评审 内容评审 PPT评审 演讲评审 优点 存在问题(至少提3点) 建议 01 牛肉面不要牛肉不要面 02 正义联盟 我是一个图书小平台 03 什么队 & ...
- 疯狂JAVA——第八章 java集合
集合类主要负责保存.盛装其他数据,因此集合类也被称为容器类. 数组元素既可以是基本类型的值,也可以是对象(实际上是保存的对象的引用): 集合里只能保存对象.
- 《Blue Flke》第一次作业:团队亮相
1.队名:Blue Flke 团队格言:决心是成功的力量,耐心是成功的保障. 2.团队成员组成: 201571030129/ 王胜海 (组长) 201571030126/ 妥志福 20157103 ...
- 一个团队和他们的调查表-----("调查表与调查结果分析"心得体会)
注:这篇blog主要是描述六小灵童团队在从接到调查表任务到分析调查数据最后完成本次任务的过程,以及过程中的点滴和心德体会.---蔡何 1.制表历程 随着课程的推进,我们逐步进入了软件项目中比较重要的需 ...
- windows server 2008 远程桌面连接数修改--无限连接
1.开启远程桌面 我的电脑 | 属性 | 远程设置 | 远程 | 进允许运行使用网络级别身份验证的远程桌面的计算机连接(更安全)(N)
- Python locals() 函数
Python locals() 函数 Python 内置函数 描述 locals() 函数会以字典类型返回当前位置的全部局部变量. 对于函数, 方法, lambda 函式, 类, 以及实现了 __c ...
- JAVA 框架 Spring Cache For Redis.
一.概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的. 常用的缓存数据库: Redis 使用内存存储(in-memory)的非关系数据库,字符串.列 ...
- nginx中图片无法显示
如果没有配置虚拟主机,则修改nginx.conf. 如果已创建单独虚拟主机,则在vhost下找到指定的主机配置文件, 如:www.xxx.com.conf location ~ .*\.(gif|jp ...
- Jmeter报文体包含过大附件导致请求报文发送失败的解决办法
Jmeter中,HTTP request的报文体为一个附件时,如果附件过大,在发送请求报文的时候会失败,办法就是勾选“Use multipart/form-data for POST”