20145311 《Java程序设计》第5周学习总结
20145311 《Java程序设计》第5周学习总结
教材学习内容总结
第八章
8.1语法与继承结构
8.1.1Try、catch
java中所有的错误都会打包为对象,可以try catch代表错误的对象后做一些处理(可以显示错误,也可以恢复正常流程)。
8.1.2异常继承架构
错误包装为对象是可以抛出的,所有的设计错误对象都是继承java.lang.Throwable类(java.lang.Error、java.lang.Exception为其两个子类)。一般的,error错误抛出时,基本上不用处理。 如果某个方法声明会throw throwable或子类实例,不是error和runtimeexception及其子类,即必须用try catch进行处理。
exception及其子对象,不少于runtimeexception或其子对象,称为受检异常(受编译程序检查),程序认为你有能力处理错误,你就需要去处理。同时要注意错误发生的时机,是否可以及时处理。
如果父类异常对象在子类异常对象前catch,那么catch子类异常对象的区块将永远不会被执行,所以要注意捕捉的顺序。
可以使用多重捕捉简化程序(注意不得有继承关系)。
8.1.3Throw or Catch
如果方法设计流程中发生异常,而你没有充足的信息来知道如何处理,可以抛出异常,让调用方法的客户端来处理。 处理完部分错误后,可以使用throw将异常再抛出,但必须在方法上使用throws声明(受检异常)
8.1.4
处理完部分异常后,你可以重新抛出异常,为了更精确地显示错误,可以通过自定义异常
8.1.5Stacktrace
可以使用printstacktrace来进行错误的追踪,要善用stacktrace。用fillinstacktrace()方法可以重新装填异常堆栈,将起点设为重抛异常的地方,并返回throwable对象。
8.1.6assert
用来判断程序执行的某个time point或是否处于某个特定的state,不是的话可以停止程序进行修改。
Assertion常用的几种情况:
1、前置条件的准备(private方法之中) 2、调用方法后承诺效果 3、assert对象某个time point下的状态 4、取代批注 5、assert不会执行到的那部分 6、不能有default的状况
8.2异常与资源管理
8.2.1finally
无论try区块中有误发生异常,若有finally区块,则finally区块一定会被执行。另外注意如果程序流程中先return了,同时有finally区块,那会先执行finally区块再返回值。
8.2.2Try-With-Resources
自动尝试关闭资源是协助你关闭资源,而不是用于异常处理,使用该语法时,不要试图自行撰写程序代码关闭资源。
8.2.3java.lang.AutoCloseable
try with resources 语法所操作的一个接口。
第九章
9.1Collection
9.1.1Collection架构
记录每个对象的索引顺序并能依索引取回对象,这样的行为定义在java.lang.list中;如果希望对象不重复,则由java.util.Set定义;如果以队列方式,使用java.lang.Queue。(不同的收集对象的需求操作不同的接口、继承不同的类)。
9.1.2List
以索引方式保留收集对象的顺寻,操作类之一为java.lang.ArrayList
ArrayList与LinkedList的区别:(一个是顺序存储结构,一个是链式存储结构,各有优势和缺点)
arraylist:数组在内存中会是连续的存储空间,不适合调整索引顺序,但是存取时速度快。
linkedlist:存储效率低,不适合排序,但是调整索引顺序所需动作较少。
9.1.3Set
存在不收集相同对象的需求时,可以使用Set接口操作对象。java中判断对象是否重复时,都会调用hashcode()与equals()方法,两个方法最好同时操作。
9.1.4Queue
收集对象时加入尾端,取得对象时从前段(有点像堆栈,先进后出、后进先出),Queue自己定义了offer、poll、peak等方法(各有各自的功能)
如果需要对队列的前端与尾端进行操作,就可以用到Deque中定义的一些行为。
9.1.5Generics
在设计API时可以指定类或方法支持泛型,从而使对象重新扮演为某种类型,使语法更为简洁。
9.1.6Lambda
lambda语法表达式省略了接口类型与方法名称,->左边卫参数列,右边是方法本体
9.1.7Interable Interator
iterator()方法会返回java.util.Interator接口的操作对象,可以使用hasnext()来看有无下一个对象,interable可以用在增强式for()循环中,感觉就是将上述的那几种结构做了一个统一,方便从里面取值输出。
9.1.8Comparable Comparator
Collection中提供有排序的算法,但必须有索引,所以sort()方法接受list的操作对象。
Comparator:用来排序的接口
9.2Map
9.2.1Map操作类
9.2.2访问键值
HashMap、TreeMap为两个常用操作类:建立键值对应,可以使用puts()方法,键不会重复,hashmap键值建立后,键是无序的,想要有序可以使用treemap。
教材学习中的问题和解决过程
课后练习:
Ch8:C C B ACD ACD CD B A A A
Ch9:CD AB C D D A ABC C C CD
代码调试中的问题和解决过程
其他(感悟、思考等,可选)
这两章感觉没咋看懂,异常处理这块和第九章好像是java中的数据结构,比之前的复杂了一些,多了许多类,许多种语法,继承架构也明显地变抽象了,有很多东西都与API 有关,要善于查API,java中的类太多,不需要全部记住,但是要会查、会用。程序就是通过不断地学习,一点点拼凑出来的。
学习进度条
代码行数(新增/累积 | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 150/200 | 2/2 | 15/20 | |
第二周 | 400/500 | 3/4 | 32/35 | |
第三周 | 800/1000 | 4/5 | 55/60 | |
第四周 | 1000/1300 | 5/6 | 75/80 | |
第五周 | 1700/2000 | 6/7 | 90/95 | 这周学得不咋样...... |
参考资料
- ...
20145311 《Java程序设计》第5周学习总结的更多相关文章
- 20145311 《Java程序设计》第九周学习总结
20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connec ...
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- 关于Windows下的批处理如何模拟Sleep
好好的批处理,居然没有正式的Sleep可供调用.有时候,确实感到很无趣. 1. 方法1: ping 1.1.1.1来模拟 好不容易从stackoverflow上找到一个答案(称之为答案,是因为它被人标 ...
- java高级---->Thread之CountDownLatch的使用
CountDownLatch是JDK 5+里面闭锁的一个实现,允许一个或者多个线程等待某个事件的发生.今天我们通过一些实例来学习一下它的用法. CountDownLatch的简单使用 CountDow ...
- 3149: [Ctsc2013]复原
3149: [Ctsc2013]复原 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 95 Solved: 44[ ...
- SNMP信息泄露漏洞
SNMP协议简介 名称:SNMP(Simple Network Management Protocol)简单网络管理协议 端口:161 协议:UDP 用途:SNMP代理者以变量呈现管理资料.管理系统透 ...
- ansible的入门级使用
author: headsen chen date: 2018-08-02 11:46:35 1,ansible的安装 yum install epel-release yum -y i ...
- Minix2.0内核源代码的组织结构
Minix2.0操作系统的源代码由两个目录组成:include/目录和src/目录 include/目录包含了操作系统所有的头文件(即.h文件) src/目录下包含了操作系统所有的源文件(.c或.s文 ...
- C++ 初始化函数的实现
http://www.cppblog.com/xlshcn/archive/2007/11/21/37088.aspx
- Linux系统下tomcat安装配置
Linux系统中Tomcat的安装配置. 前提JDK已经安装好. 安装 下载tomcatwget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0 ...
- Tomcat 400错误 问题集锦
1.前后台参数类型不一致 上图错误提示就是客户端发送的请求不能找到你的具体的页面或者地址,这是Spring MVC抛出的错误,这样我们就要进行参数的检查,一定是JSP提交的参数和Controller里 ...
- php最全基础,数组,函数,超全局变量,时间,回话,文件,php操作mysql
共享一份学习php最全基础语法知识的笔记 原文链接:http://www.cnblogs.com/oscn/p/3607757.html:略有修改 http://www.cnblogs.com/l ...