20155233 2016-2017-2 《Java程序设计》第5周学习总结
20155233 2016-2017-2 《Java程序设计》第5周学习总结
学习目标
- 理解异常架构
- 牚握try...catch...finally处理异常的方法
- 会用throw,throws
- 理解Collection和Map架构
- 会用常见的数据结构和算法
- 了解Lambada和泛型
教材学习内容总结
第八章:
- try catch finally中所有错误都会被打包为对象。如果某个方法声明会抛出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区块一定会被执行。
- 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 与 Iteratoriterator()方法:返回java.util.Iterator接口的操作对象,包括了Collection收集的所有对象,利用iterator()的hasNext()看看有无下一对象,用iterator()的next取得下一对象。
- Comparable与ComparatorCollections的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对象。
教材学习中的问题和解决过程
- 泛型语法的使用:
- 指定类或方法,时语法简洁,并得到编译时期检查。
- Lambda表达式的使用:
Request request=()->out.printf("处理数据%f%n",Math.random());
- 常用Map操作类:
java.util.HashMap
与java.util.TreeMap
。
代码调试中的问题和解决过程
- 书上代码出现如图错误,javac通过,Java运行不对,但不知道如何解决。
- 敲书上例子很多细节不是特别懂:
- 尝试多敲,仔细研读相关代码。
代码托管
上周考试错题总结
- 填空:使用JDB进行调试时单步执行命令有step和next,我们优先使用(next)。
- 填空:使用JDB进行调试时查看源代码的命令是(list)。
- 填空 :10&9 的结果是(8)。
- 填空:”Hello”.charAt(1) 的值是(‘e’)。
- 填空:System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”。
- 填空:”Hello”.substring( 0,2 )的值是“He”。
- CH06判断:可以用父类声明对象引用,用子类生成对象,但需要强制类型转换。(X)
- CH06判断:父类中有个public void fight(),子类中有个public void fight( Weapon w),这两个方法的关系是Override.(X)
- CH07 判断:Java中一个类可以继承多个类。(X)
- CH07 填空:用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。
- H07 填空:面向对象中,设计经验可以用(设计模式)表达
结对及互评
- 20155210潘滢昊是我的学习伙伴,本周他敲代码600+,达到了本周的学习任务,但大多数是按照书上代码所敲,课后选择题代码同样未敲。
- 与我相比,潘同学学习认真、刻苦,是我学习的一个非常好的搭档,我认为我要跟着他的脚步学习Java,这样才能学好。
- 存在的缺点就是大多数代码是周六、周日所敲,没有达到每天上传代码的要求,我会督促他同时也要求自己每天都进行学习。
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
- 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
点评模板:
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
-
其他(感悟、思考等,可选)
本周学习的Java知识难度明显增大,好多知识都是从未涉及的,这让我想到了C中的结构体也是很难,而自己也不是很好的理解,相比之下Java的学习更是重要,若这周学习跟不上,那么在以后的学习中势必会特别困难,所以我会继续加强本周内容的掌握。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 20篇 | 200小时 | |
第一周 | 8/10 | 1/4 | 8/10 | 编写第一个Java程序HelloWorld |
第二周 | 79/89 | 1/5 | 11/21 | 学习Java基础语法 |
第三周 | 249/338 | 1/6 | 16/37 | 学习Java关于对象的重要知识 |
第四周 | 331/669 | 1/7 | 17/54 | 学习Java关于继承、接口与多态的重要知识 |
第五周 | 507/1176 | 1/8 | 18/72 | 学习Java的异常处理、Collection与Map |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:18小时
改进情况:用了更多的时间学习Java,同时花费时间学习其他的知识。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155233 2016-2017-2 《Java程序设计》第5周学习总结的更多相关文章
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
- 20155213 2016-2017-2 《Java程序设计》第九周学习总结
20155213 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- Go语言实现数据结构(一)单链表
1.基本释义 2.结构体设计 3.基本方法设计 4.Main函数测试 1. 基本释义 线性表包含两种存储方法:顺序存储结构和链式存储结构,其中顺序表的缺点是不便插入与删除数据:接下来我们重点实现基于G ...
- django反向解析URL和URL命名空间
django反向解析URL和URL命名空间 首先明确几个概念: 1.在html页面上的内容特别是向用户展示的url地址,比如常见的超链接,图片链接等,最好能动态生成,而不要固定. 2.一个django ...
- git 和 github 链接
第一步 再电脑上安装git 请自行搜索 到你需要的一个目录下:例如/gittest 首先创建文件,然后 git add 和 git commit 不然直接查看 git branch - ...
- 美食查询手机应用"吃了么":NABC
一 N(need) 当你在一个陌生的地方游玩,想吃到当地的招牌美食时怎么办? 当你听说有一个很好吃的家常菜,也想自己下厨试试时怎么办?打印出菜谱,还是奔波于厨房和电脑之前? 查询周边美食的功能对于那些 ...
- 《Linux内核设计与实现》Chapter 2 读书笔记
<Linux内核设计与实现>Chapter 2 读书笔记 一.获取内核源码 1.使用Git 我们曾经在以前的学习中使用过Git方法 $ git clone git://git.kernel ...
- 将ssh失败的用户放入hosts.deny中
1.find / -name secure 找到linux系统安全日志文件 2.cp `find / -name secure` /tmp/`date +%F` 将secure文件复制出来 或者使用f ...
- HDU 2097 Sky数
http://acm.hdu.edu.cn/showproblem.php?pid=2097 Problem Description Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会, ...
- Thinkphp3.2 入口绑定问题记录
// 应用入口文件 // 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); ...
- a标签属性 rel=noopener noreferrer
当你浏览一个页面点击一个a标签链接跳转到另一个页面时, <a href="http://www.baidu.com" target="_blank"> ...
- delphi 登陆窗口的问题 [问题点数:30分,结帖人tianhuo_soft]
http://bbs.csdn.net/topics/200053917 有两个窗口formLogin是登陆窗口,formMain是主窗口我想让formMain显示出来,并且formLogin窗口关闭 ...