20155201 2016-2017-2 《Java程序设计》第五周学习总结


教材学习内容总结

第八章 异常处理

  • 程序设计本身的错误,建议使用Exception或其子类实例来表现,称错误处理为异常处理。

    • try-catch结构:
try{
...//易出错部分程序块
}catch(.../*错误信息,类似InputMismatchException*/){
...//出错后进入该程序块,在程序块内处理错误。
}
  • 抛出异常:catch区块进行完部分错误处理后,可以使用throw将异常抛出,实际上可以再任何流程中抛出异常,直接跳离原有流程,抛出受检或非受检异常。
public static void main(String[] args) throws FileNotFoundException/*声明方法中会抛出异常*/{
...
try{
...
}catch(FileNotFoundException){
...
throw ex;//执行时抛出异常
}
}

如果抛出的是受检异常,认为客户端有能力且应处理异常,在方法上必须使用throws声明;如果抛出的是非受检异常,表示你认为客户端调用方法的时机出错,不使用throws声明。

  • 如何使用断言

    • 断言客户端调用方法前,已经准备好某些前置条件(通常在private方法中)
    • 断言客户端调用方法后,具有方法承诺的结果
    • 断言对象某个时间点下的状态
    • 使用断言取代批注
    • 断言程序流程中绝对不会执行到的程序代码部分
assert value : "输出的内容";
/*类似if的判断形式,但不是程序执行流程的一部分。*/

第九章 Collection与Map

  • Collagen API接口继承架构:

收集对象的行为,比如新增对象的add()方法,移除对象的remove()方法,都定义在java.util.Collection中。

  • Queue:如果希望收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端,则可以使用Queue接口的操作对象。

    Queue与Deque等义方法
Queue方法 Deque等义方法
add() addLast()
offer() offeLast()
remove() removeFirst()
poll() pollFirst()
element() getFirst()
peek() peekFirst()
  • Lambda表达式:
IntegerFunction doubleFunction=(Integer i)->i*2;

等同于

IntegerFunction doubleFunction=new IntegerFunction(){
public Integer apply(Integer i){
return i*2;
}
}
  • 程序设计中有根据关键字找对应数据的要求,利用java.util.Map接口的操作对象来建立键值对应数据,之后若要取值,用对应键可以迅速取得。

    Map设计架构:


教材学习中的问题和解决过程

  • 问题1:书上代码中last应该是Node类,而Node类中并没有elem成员。

  • 问题1解决方案:把elem成员名改成o。



  • 问题2:throw与throws都是什么意思?

  • 问题2解决方案:throw用于函数体中,抛出一个异常。程序在throw语句后立即终止,不执行throw后面的程序块。而throws用于一个函数头中,用来标明该成员函数可能抛出的各种异常

throw <异常对象>
[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]

代码调试中的问题和解决过程

  • 问题1:运行时还是出现了类似Average的报错:

  • 问题1解决方案:仔细对比书上的代码发现书上写的是next()不是我写的nextInt(),于是我上网搜索了一下next()和nextInt()两者的区别

next()只读空格之前的数据,将用户输入的下一个字符串剖析为int值
nextInt()读取整行内容

改正后程序正常运行。

代码托管


上周考试错题总结

  • ”Hello”.charAt(1) 的值是(‘e’)。我写的答案是e,此题在IDEA中运行过,结果是e,但没加上单引号,属于不细心犯的错误。
  • System.out.println( “HELLO”.( toLowerCase() ) ) 会输出“hello”.
  • 父类和子类要有(ISA 或“是一种”)关系 。我写了继承关系。
  • 被声明为protected的方法,只能中继承后的子类中访问。(X)
  • Math中的abs()方法可以Override.(X)
  • 实现一个类中的equals()方法时,一定要同时实现(hashCode())方法。hashCode()没加括号。
  • Java中一个类可以继承多个类。(X)与接口概念混淆。
  • 用enum定义一个Season的类型表示四季(public enum Season{SPRING, SUMMER, AUTUMN,WINTER})。定义Season时大括号里没写四个季节。
  • 面向对象中,设计经验可以用(设计模式)表达。

结对及互评

20155313杨 瀚同学结对。

  • 基于评分标准,我给本博客打分:8分。得分情况如下:

    • 正确使用Markdown语法:加1分
    • 模板中的要素齐全:加1分
    • 代码调试中的问题和解决过程:加1分
    • 感想,体会不假大空的加1分
    • 进度条中记录学习时间与改进情况的加1分
    • 排版精美:加1分
    • 有动手写新代码:加1分
    • 错题学习深入的加1分

点评过的同学博客和代码


感悟与思考

这一周我的学习重点放在了第八章的错误处理,就像书上说的一样,Java是唯一可以处理错误的语言,我觉得比c等语言好得多,可以提前预知并且处理错误。由于之前学习过C语言,在Java学习过程中,编程时我所思考的都是c的语言,对比着敲出Java的代码,虽然因此感觉Java变得没那么难以理解,但是也不知道c留给我的刻板印象是不是会限制我的思路,希望以后多练习,能够以学习Java的主要思维设计程序。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第五周 882/2333 1/1 16/72 初步学习了错误处理的语法
  • 计划学习时间:14小时

  • 实际学习时间:16小时

  • 改进情况:本来计划工作日期间每天半小时-一小时,但有的晚上有选修,所以周末多学一会弥补一下。

参考资料

20155201 2016-2017-2 《Java程序设计》第五周学习总结的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  3. 20155201 2016-2017-2 《Java程序设计》第一周学习总结

    20155201 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 每一章的问题: 第一章 Java ME都有哪些成功的平台? 第二章 哪些情况可以使用impo ...

  4. 20155201 2016-2017-2 《Java程序设计》第九周学习总结

    20155201 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC全名JavaDataBaseConnecticity,是Jav ...

  5. 20155201 2016-2017-2 《Java程序设计》第二周学习总结

    20155201 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 编译运行P55各种类型可储存的数值范围代码,截图: 常用格式控制符: 符号 说明 %% 表示 ...

  6. 20155313 2016-2017-2 《Java程序设计》第九周学习总结

    20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...

  7. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  8. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  9. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  10. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

随机推荐

  1. NameNode内存溢出和DataNode请求超时异常处理

    问题背景 春节假期间,接连收到监控程序发出的数据异常问题,赶忙连接上跳板机检查各服务间的状态,发现Datanode在第二台.第三台从节点都掉线了,通过查看Datanode和Namenode运行日志,发 ...

  2. UI Recorder 安装教程(一)

    前言: UI Recorder 是一款零成本UI自动化录制工具,类似于Selenium IDE. UI Recorder 要比Selenium IDE更加强大! UI Recorder 非常简单易用. ...

  3. 20135220谈愈敏Linux Book_5

    第五章 系统调用 内核提供了用户进程与内核进行交互的一组接口. 应用程序发出请求->内核负责满足 目的:保证系统稳定可靠 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层 ...

  4. Linux内核实验作业六

    实验作业:分析Linux内核创建一个新进程的过程 20135313吴子怡.北京电子科技学院 [第一部分]阅读理解task_struct数据结构 1.进程是计算机中已运行程序的实体.在面向线程设计的系统 ...

  5. 基于 Java Web 的毕业设计选题管理平台--系统设计和任务分配

    一.团队作业:http://www.yzhiliao.com/course/70/task/440/show 二.个人作业: 1.项目的代码托管 (1).GitHub 地址:https://githu ...

  6. 作业三(下)安装VS2013

    VS2013 今天常识安装Microsoft Visual Studio 2013,虽然 直接在软件管家上下载,一键安装,但是还是遇到许多问题,安装过程相当的艰难,花了好多时间.但是在尝试多次后成功的 ...

  7. ElasticSearch 2 (17) - 深入搜索系列之部分匹配

    ElasticSearch 2 (17) - 深入搜索系列之部分匹配 摘要 到目前为止,我们介绍的所有查询都是基于完整术语的,为了匹配,最小的单元为单个术语,我们只能查找反向索引中存在的术语. 但是, ...

  8. 一日游 + 进度psp

    假设我们全班同学及教师去吉林省吉林市1日游,请为这次活动给出规格说明书. 目录 1   引言 1.1   编写目的 1.2   项目背景 1.3   参考资料 2   需求分析 2.1   交通方式 ...

  9. Ubuntu18.04 安装后的简单实用设置[未完成]

    1. 安装完成. 2. 更新 sudo apt-get update 3. 修改vi 放置键盘错位的问题 编辑文件/etc/vim/vimrc.tiny 将“compatible”改成“nocompa ...

  10. 关于“代码规范”,“Review”和“Check list”(续)

    在前两天的    关于“代码规范”,“Review”和“Check list”    一文中,我给自己列出了Check list,如下: 1.代码能够工作么?它有没有实现预期的功能,逻辑是否正确等. ...