学号20155308 2016-2017-2 《Java程序设计》第5周学习总结
学号20155308 2016-2017-2 《Java程序设计》第5周学习总结
教材学习内容总结
8.1 语法与继承架构
使用try...catch
- 注意多个catch一定把父类放后面
- 异常架构
1. Error及其子类写程序不用处理,最多留个日志
2. Java异常处理是要处理Exception类及其子类(Checked Exception)
3. RuntimeException及其子类也不用处理(Unchecked Exception)
4. 产生RuntimeException的问题在调用代码
5. 参考Design by Contract (DBC) 契约式设计
6. Multi-catch:类之间不能有继承关系
- API时一定对上层的类好好研究,学习,再学习和应用子类时就比较容易了
- catch or throw?
• throws:自己无法处理,用在方法声明
• throw:方法中抛出Checked Exception,方法声明中必须有throws
1. 自定义异常
2. 异常堆栈
3. printStackTrace
4. 善用堆栈追踪错误
5. 代码中不要私吞异常
6. 不要错误处理异常
7. 处理时不要显示错误信息
8.2异常与资源管理
- 使用finally
- try-catch-finally
- try with resources
- 关闭多个资源时用分号分隔
- java.lang.AutoCloseable
- try with resources的对象必须实现AutoCloseable接口
9.1 使用Collection集合对象
- Connection: 增、删、遍历对象
- add
- remove
- clear
- size
- iterator
- List
- Queue
9.2键值对应的Map
数组是用数字索引(Key),Map可以看作可以用非数字索引(Key)的数组
常用的Map类
Dictionary与HashTable不建议使用
Map
put
-get
-sizeremove
forEach
HashMap
TreeMap
Properties:配置文件
访问Map键值
keySet
values
教材学习中的问题和解决过程
- 问题一:finally块中的代码一定会被执行吗?
- 答:finally不一定都会执行,在不终止JVM的情况下,finally中的代码一定会执行。证明过程可参考:
http://www.cnblogs.com/jubuyouxue/archive/2012/07/08/2581459.html
- 问题二:p228 Average2.java: try...catch与 Average.java比较,这个程序有什么优点?
- 答: 这个程序使用了try、catch语法,JAM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比较catch中声明类型。总而言之,就是增强了输入的容错性,如果输入3o这种不符合要求的数据,则系统有反应能力。
- 问题三:p229 Average3.java: 有错误,如何回到正常流程?
- 答:如果NextInt发生错误,执行流程就会跳到catch区块,执行完之后,因为还在while中,继续执行新的流程。
- 问题四:(接上一题)与Average2.java比较,这个程序有什么优点?
- 答:这个问题将正确的整数输入予以加总,错误的输入则显示略过,不会要求你输入的正确性。但是我认为这个优点同时也是一个缺点,因为如果输入马虎的时候,数据是一个错误输入,而自己也没有发现,则会得到错误的结果,很难发现。
- 问题五:p285 Sort3.java:
自定义类型的排序,实现Comparable接口
排序是升序还是降序?升序
修改代码,实现反序。
代码调试中的问题和解决过程
未解决!
代码托管
- 代码提交过程截图:
- 代码量截图:
上周考试错题总结
- final可以用在类,方法,变量前。(OK)
- 解决方法:final关键字可以用来修饰类、方法、变量。各有不同。
A、修饰类(class)。
1、该类不能被继承。
2、类中的方法不会被覆盖,因此默认都是final的。
3、用途:设计类时,如果该类不需要有子类,不必要被扩展,类的实现细节不允许被改变,那么就设计成final类
B、修饰方法(method)
1、该方法可以被继承,但是不能被覆盖。
2、用途:一个类不允许子类覆盖该方法,则用final来修饰
3、好处:可以防止继承它的子类修改该方法的意义和实现;更为高效,编译器在遇到调用fianal方法转入内嵌机制,提高了执行效率。
4、注意:父类中的private成员方法不能被子类覆盖,因此,private方法默认是final型的(可以查看编译后的class文件)
C、修饰变量(variable)
1、用final修饰后变为常量。包括静态变量、实例变量和局部变量这三种。
2、特点:可以先声明,不给初值,这种叫做final空白。但是使用前必须被初始化。一旦被赋值,将不能再被改变。
D、修饰参数(arguments)
1、用final修饰参数时,可以读取该参数,但是不能对其作出修改
- Java中所有的对象都有equals()方法。(OK)
- 实现接口表示(拥有行为),但不是ISA关系。
- Java中一个类可以继承多个类。(X)
- 解决方法:接口是常量值和方法定义的集合。接口是一种特殊的抽象类。
java类是单继承的。classB Extends classA
java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
- Java中一个接口可以继承多个接口。(OK)
- 解决方法:同上
- 面向对象中,设计经验可以用(设计模式)表达
- 解决方法:见书
结对及互评
我的partner是20155316黄月,我感到很荣幸能与大神一起学习,同时我认为黄月同学学习很认真,他的博客我认为这一次也接近满分10分!
评分标准(满分10分)
- 从0分加到10分为止
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分 - 缺少“参考资料”的不能加分
- 教材学习中的问题和解决过程, 一个问题加1分
- 代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分 6 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分 7 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
点评模板:
基于评分标准,我给本博客打分:(0-10)。得分情况如下:9分
参考示例 ### 点评过的同学博客和代码
其他(感悟、思考等,可选)
我感觉这周的学习很辛苦,学习的任务量也有所增加。前面学习了Java核心和面向对象思想,后面的内容都是使用Java的各种类库了。其中我们在学习对象的基础上,将Java中的错误也以对象的方式呈现出来。在首次见到java.util.InputMismatchException时,我总是不是特别明白,尤其是throws java.io.IOException...的出现,使我更加迷惑,所以前几天的学习还是很艰难的。在我通过代码的敲写和书本的反复阅读,大致对这些我不熟悉的事物有所了解,同时发现如果又不会的东西的时候,向partner询问或是上网都是解决方法的一个途径。
另外,这周的代码编写上我也有了一定的进步。用之前我每次编写完代码之后都懒得git add .和git commit - m ""的,但是通过老师的提示,我这周改正了我自己的懒惰,在编完代码就进行git,虽然有的时候还是总忘,但是还是有一点进步的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 300/ | 2/2 | 20/20 | 学会了异常处理及Collection与Map |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
- 计划学习时间:12小时
- 实际学习时间:15小时 - 改进情况: 继续保持!
- 有空多看看现代软件工程 课件 软件工程师能力自我评价表 ## 参考资料 - Java学习笔记(第8版) - 《Java学习笔记(第8版)》学习指导 - ...
学号20155308 2016-2017-2 《Java程序设计》第5周学习总结的更多相关文章
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 学号20145303 《Java程序设计》第一周学习总结
学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...
- 学号20145322 《Java程序设计》第一周学习总结
学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...
- 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...
- 201521123061 《Java程序设计》第九周学习总结
201521123061 <Java程序设计>第九周学习总结 1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1 ...
- 201521123038 《Java程序设计》 第九周学习总结
201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...
- 201521123045 <java程序设计>第11周学习总结
201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 2018-2019-3《Java程序设计》第二周学习总结
学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...
随机推荐
- 第二次结对作业-WordCount进阶需求
原博客 队友博客 github项目地址 目录 具体分工 需求分析 PSP表格 解题思路描述与设计实现说明 爬虫使用 代码组织与内部实现设计(类图) 算法的关键与关键实现部分流程图 附加题设计与展示 设 ...
- beta发布简评
第一组:新蜂小组 题目:俄罗斯方块 评论:主体功能已经完成,可以流畅的进行游戏,无论效果或是功能都实现的很好. 第二组:Nice团队 题目:约跑APP(约吧) 评论:作为应用,想法创意很好:功能实现上 ...
- 2013南京网赛1003 hdu 4750 Count The Pairs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4750 题意:给出一个无向图,f(a,b)表示从点a到点b的所有路径中的每条路径的最长边中的最小值,给出 ...
- 时空KSOA之CS表单工具说明
CS表单工具说明 1.调用: 1.1.单据事件调用 runbill_表单sn 调用无窗口表单 loadbill_表单sn 调用窗口表单 1.2.功能调用 功能号:LOADCSBILL 参数表单名称 1 ...
- Java的Bean
Bean的定义 遵循Sun的Java Bean规范编写的特殊类 Java Bean的规范 类的访问控制权限是public 类提供有一个无参的构造函数 类的属性的访问控制权限是private,通过set ...
- hdu 5638 Toposort (拓扑排序+线段树)
Toposort Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- 【bzoj3575】 Hnoi2014—道路堵塞
http://www.lydsy.com/JudgeOnline/problem.php?id=3575 (题目链接) 题意 给出一个有向图和一条最短路,问最短路上任意一条边断掉,此时的最短路是多少. ...
- php版本的code review软件
phabricator, http://www.oschina.net/p/phabricator
- 【bzoj3881】【Coci2015】Divljak
题解 对$S$集合ac建自动机,把$T_{i}$放在里面跑,记录路径上的所有节点并对它们在fail树上求到root的树链并: 这样就得到了$T_{i}$所有的子串: 动态将$T_{i}$加入直接用树状 ...
- 公钥与私钥对HTTPS的理解(数字证书的需要)
本文转自某大牛链接 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下window ...