20145325张梓靖 《Java程序设计》第5周学习总结
20145325张梓靖 《Java程序设计》第5周学习总结
教材学习内容总结
- try catch Java中所有错误都会被打包为对象。如果某个方法声明会抛出
Throwable或子类实例,只有不是属于Error ,java.lang.RuntimeException 或其子类实例,就必须明确使用 try、 catch 语法加以处理,或者用 Throws 声明这个方法会抛出异常,否则编译失败。 - 异常继承架构 错误会被包装为对象,这些对象都是可抛的。设计错误对象都继承自
java.lang.Throwable类。受检异常,java.lang.Exception及其子类(但非属于 RuntimeException ),API客户端必须明确处理错误;非受检异常:java.lang.Error,编译程序不强迫API客户端在语法上进行处理。 - 规则表示式 String的matches()方法设定\d*,用于检查字符串中的字符是不是数字,是则返回ture。
- 注意点 若父类异常对象在子类异常对象前被catch,那么catch子类异常对象的区块将永远不会被执行 ;注意catch括号中列出的异常不得有继承关系,否则编译错误(多重捕捉语法)。
- throw 如果是受检异常,则必须在方法上使用 throws 声明;如果是非受检异常,则可不使用 throws 声明。
- 自定义异常类别 通常建议继承自 Exception 或其子类,如果不是继承自 Error 或 RuntimeException,那么就会说受检异常。
- 堆栈追踪 为得知异常发生的根源,以及多重方法调用下异常的堆栈传播,可以利用异常对象自动收集的堆栈追踪;直接调用异常对象的
printStackTrace(); 取得个别的堆栈追踪元素进行处理可使用getStackTrace(),返回StackTraceElement数组。 - assert 程序执行的某个时间或某种情况下,必然处于或不处于何种状态下,这是钟断言;启动断言检查,执行java指令时,指定-enableassertions或-ea自变量。
- finally 无论try区块中有无发生异常,finally区块一定会被执行。
- 自动尝试关闭资源 想要尝试自动关闭资源的的对象,是撰写在try之后的括号中,如果无须catch处理任何异常,可以不用撰写,也不用撰写finally自行尝试关闭资源。
- java.lang.AutoCloseable 只要操作
AutoCloseable接口,就可以套用至尝试关闭资源语法,可以同时关闭两个以上的资源对象,中间以分号分隔;try括号中越后面撰写的对象会越早被关闭。 - Collection
java.util.List接口中,记录每个对象的索引顺序,并可依照索引取回对象;java.util.Set接口中,收集的对象不重复,具有集合的行为;java.util.Queue接口中,收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端;java.util.Deque接口中,对 Queue 的两端进行加入、移除等操作。 - Set 在收集过程中若有相同的对象,则不再重复收集;HashSet的操作概念是,在内存中开设空间,每个空间会有个哈希编码;Java 中许多要判断对象是否重复时,都会调用
hashCode()与equals()方法。 - Queue Queue继承自Collection,所以也具有Collection的add()、remove()、element()等方法,然而Queue定义了自己的offer()、poll()与peek()等方法,最主要的差别之一在于:add()、remove()、element()等方法操作失败时会抛出异常,而offer()、poll()与peek()等方法操作失败时会返回特定值。
- 使用泛型 用“<>” 写明类型,如果没有指定,则就会回归为使用 Object 类型;声明参考时有指定类型,创建对象时就不用再写类型了。
- Lambda
Request request = ()-> out.ptinf("", );相对于匿名类语法,省略了接口方法和方法名称,->左边是参数列,右边是方法本体。 - Interable 与 Iterator iterator() 方法:返回
java.util.Iterator接口的操作对象,包括了 Collection 收集的所有对象,利用 iterator() 的 hasNext() 看看有无下一对象,用iterator() 的 next取得下一对象。 - Comparable 与 Comparator Collections的Sort()方法在取得a对象与b对象进行比较时,会先将a对象扮演为Comparale,然后调用
a.compareTo(b),a对象顺序小于b对象返回小于0的值,相等返回0,大于返回大于0的值;java.util.Arrays的Sort()方法,针对对象排序有两种版本:收集在数组中的数据必须是Comparable,或者可以传入Comparator指定排序方式;reverseOder()返回的Comparator会是Comparable对象上定义顺序的反序,nullsFirst()接受Comparator在其定义顺序上加上让null排在最前面的规则。 - Map 根据某个键(Key)来取得对应的值( Value),Map 也支持泛型;
HashMap,建立键值,使用put()方法,指定键取回对应的值,使用get()方法;TreeMap,如果建立键值对应,则键的部分会排序,作为键的对象必须操作Comparable接口,或者在创建TreeeMap时指定操作Comparator接口的对象;Properties,setProperty()指定字符串类型的键值,getProperty()指定字符串类型的键,取回字符串类型的值。 - 访问Map键值 想取得Map所有的键,可以调用Map的KeySet()返回Set对象,取得map中所有的值,可以使用values()返回Collection对象。
教材学习中的问题和解决过程
- 问题 书中代码有很多小细节现在都无法清楚的理解
- 解决过程 重新、多敲几遍代码,使用API 理解,询问别人,尽量理解。
代码调试中的问题和解决过程
- 问题 在做P301,引发的问题
- 解决过程
- 如何用Set表示不重复的数据(下题为例,应输出 2):
1.假设 Student 就只有一个变量,按照练习题的结构编写代码。


结果不是所想的。
2.用类似 9.1.3 WordCount的new HsahSet(Array.asList(tokens));方法,定义 Set时,指定 Student 类型。


不对。
3.定义 Set时,指定 String 类型。


为什么 size 会为1?但后显示的结果是对的。
4.直接定义 String类型。


结果是对的,说明String 类型,可直接用Set 来达到收集的对象不重复。
5.换钟方式得出结果:重新定义 equals 、hashCode,不重新定义 toString。



size 对的,但后面显示的内容代表什么?
6.重新定义 equals 、hashCode,重新定义 toString。


是所想要的答案,说明String.format 能返回输出字符串。
代码托管

学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 3500行 | 28篇 | 300小时 | |
| 第一周 | 150/150 | 1/1 | 20/20 | |
| 第二周 | 100/250 | 1/2 | 22/42 | |
| 第三周 | 150/400 | 2/4 | 21/63 | |
| 第四周 | 1000/1400 | 1/5 | 27/90 | |
| 第五周 | 300/1700 | 1/6 | 22/102 |
参考资料
20145325张梓靖 《Java程序设计》第5周学习总结的更多相关文章
- 20155225 2016-2017-2 《Java程序设计》第九周学习总结
20155225 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 了解JDBC架构 使用JDBC API JDBC是用于执行SQL的解决方案,开 ...
- ## 20145203盖泽双 《Java程序设计》第二周学习总结
20145203盖泽双 <Java程序设计>第二周学习总结 教材学习内容总结 1.java可以分为基本类型和类类型,基本类型包括整数.字节.浮点数.字符与布尔. 整数:short(占两个字 ...
- 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简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- poj_3258 二分法
题目大意 给定区间[0,L],在区间内给定N个数,加上区间的端点总共N+2个值.这N+2个数相邻的两个数之间有一个差值delta[i],现在可以从除去端点之外的这N个数中删除M个,使得剩余的N+2-M ...
- Delphi使用ADO连接网络数据库,断网后重连问题
原始文章: https://blog.csdn.net/blog_jihq/article/details/11737699# 使用TADOConnection对象连接网络数据库(以MySQL为例), ...
- HTTP/2笔记之错误处理和安全
零.前言 这里整理了一下错误和安全相关部分简单记录. 一.HTTP/2错误 1. 错误定义 HTTP/2定义了两种类型错误: 导致整个连接不可使用的错误为连接错误(connection error) ...
- 【python系列】安装完PyCharm创建项目提示No Python interpreter selected
安装Python解释器 去python官网下载python的安装包(https://www.python.org/downloads/release/python-361/) 注意安装的时候选择配置p ...
- Python subprocess shell 编程规范
使用subprocess通过shell调用另一个模块组件时,需要对返回的code进行判断.判断结果为执行失败时需要raise Exception,不然调用树过于复杂时,我们很难跟踪到异常发生的位置.s ...
- Object.prototype.toString()
Object.prototype.toString()方法返回一个代表该对象的字符串. var o = new Object(); o.toString(); //"[object Obje ...
- Windows Phone 7 程序等待页面的处理
程序启动通常会有一个等待的过程,在这个过程中可以通过使用Popup控件配合BackgroundWorker类启动后台线程来实现. 控件的代码 PopupSplash.xaml <UserCont ...
- angularJS的路由!
angularJS 路由:(分发需求) angularJS 中路由是单独提供的功能模块,ngRoute 也是一个单独发行的文件 可以通过 npm 去安装这个包:angular-route <s ...
- onethink----网站配置信息调用!
{:C('WEB_SITE_TITLE')} // 标题 {:C('WEB_SITE_DESCRIPTION')} // 描述 {:C('WEB_SITE_KEYWORD')} // 关键词 {:C( ...
- centos7 安装后,出现Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]
PS:出现以上信息,是要求你阅读或者接收协议: Initial setup of CentOS Linux 7 (core)解决步骤如下: 1,输入[1],按Enter键阅读许可协议,2,输入[2], ...