20162323周楠 2016-2017-2 《程序设计与数据结构》第八周学习总结

教材学习内容总结

  • 一个异常是一个对象,它定义了并不轻易出现的或是错误的情形

  • 异常由程序或运行时环境抛出,并能被捕获,需要时可进行适当的处理,与错误(error)不同,error不可恢复,且不应该被捕获

  • 导致异类的几种情形:

    1.试图被0除

    2.数组下标越界

    3.没有找到指定的文件

    4.请求的I/O操作没能正常执行

    5.试图访问空引用所指的对象

    6.试图执行一个违反某类安全措施的操作

  • 处理异常的方式:

    1.不处理异常

    2.在异常发生的地方处理

    3.在程序的其他地方处理异常

  • 不捕获异常:抛出异常时输出的消息提供了方法调用栈的轨迹

  • try-catch语句:每个catch子句处理try块中可能抛出的一种特定类型的异常

  • finally语句:不论是正常退出try块,还是因跑出一个异常而退出,都要执行finally子句

  • 异常传播:有一个可以让方法调用层次中的外层方法捕获并处理异常,如果在发生异常的方法内没有捕获并处理它,控制立即转向产生异常的这个方法的调用方法,以此类推。

  • 异常类的层次:Error类和Exception类的共同父类是Throwable类。从Excption类或他的一个后继类派生一个新类,就可以定义新的异常。

  • 必检异常和免检异常:方法头中的throws子句必须包含方法中没有被捕获及处理的必检异常

  • I/O异常(输入/输出异常):

    1.流是字节的顺序序列,他可以用作输入流或输出的目的地

    2.标准的I/O流:System类中的三个公有引用变量(in、out、err)

    System.in   标准输入流
    
    System.out  标准输出流
    
    System.err  标准错误流(输出信息错误)

    3.Java类库中包含了许多类,可用来定义具有不同属性的I/O流

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

  • 问题1:对异常的分类比较模糊,层次不清
  • 问题1解决方案:从视频中学习,再分类
  • 问题2:异常的处理
  • 问题2解决方案:Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally。对这几个方法再分开比较

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

  • 问题1:运行结果出错
  • 问题1解决方案:看书的时候看错了,然后以为是运行错误,去翻了视频,发现没有错误,再去认真看书

代码托管

(statistics.sh脚本的运行结果截图)



上周考试错题总结

  • 1.假设Horse是Animal的子类,且都不是抽象类。下面哪项是无效的声明和初始化?

    A .

    Horse h = new Horse();

    B .

    Horse h = new Animal();

    C .

    Animal a = new Animal();

    D .

    Animal a = new Horse();

    E .

    all of the above(以上都正确) are valid(以上都是有效的)

    答案:B。由于Horse是Animal的子类,所以B需要一个明确的类。

  • 2.下面哪个方法包含了实现Iterator接口的对象?

    A .

    next

    B .

    hasNext

    C .

    toString

    D .

    all of the above(以上都正确)

    E .

    a and b(a和b)

    答案:D。Iterator接口指定实现它的所有对象必须具有hasNext和next方法, 由于Java中的所有对象都是Object类的子类,所以它还将包含toString方法。

  • 3.为了创建一个实现接口的类,需要使用关键字____

    A .

    extends

    B .

    interfaces

    C .

    implements

    D .

    finalizes

    E .

    abstracts

    答案:C。实现接口的类使用implements关键字来声明该类。

  • 4.假设Animal是一个指定了单一方法的接口--speak。现在假设Dog类实现了Animal接口。除了speak方法外,Dog类还有一个方法wagTail。现在思考下面的代码:

    Animal a = new Dog();

    a.wagTail();

    关于这段代码,下面哪项是正确的

    A .

    这段代码会引起编译时错误

    B .

    这段代码会引起运行时错误

    C .

    这段代码将会调用Animal接口中的speak方法

    D .

    这段代码将会调用Dog类中的wagTail方法

    E .

    以上都正确

    答案:A。此代码将引起编译时错误,因为Animal接口未指定wagTail方法。 调用wagTail方法时,可以通过显式地转换为Dog来避免编译时错误。

  • 5.假设Animal是一个接口。那么,通过初始化Animal接口创建一个对象是可能的).

    A .

    true

    B .

    false

    答案:B。接口无法实例化。

  • 6.接口不能声明任何实例变量).

    A .

    true

    B .

    false

答案:A。接口只能声明常量。

  • 6.Linux中获取当前路径的绝对路径的命令是()?

    A .

    cd

    B .

    passwd

    C .

    tree

    D .

    pwd

答案:D。使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录, - 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。

passwd 修改用户登录口令,tree给出目录树结构。

结对及互评

点评过的同学博客和代码

思考

每个章节末尾的重点总结里面有好多东西,基本上这一章里面的所有东西都在这里,在学习的过程中,最开始是一页一页看书,但是效率太低,后来是视频与课本结合起来学习,然后开始通过敲书上代码来掌握知识,这周又开始回归书本知识,先阅读重点总结,知道这一章有哪些重要的知识点,然后看视频,最后再把书本细过一遍,学习方法在不断地改进,希望能找到最适合自己的那一种。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第五周 479/200 7/24 18/100
第六周 559/500 9/33 20/120
第七周 630/1000 4/37 18/138
第八周 300/1300 2/9 30/90

20162323周楠《Java程序设计与数据结构》第八周总结的更多相关文章

  1. 20172306 2018-2019-2 《Java程序设计与数据结构》第九周学习总结

    20172306 2018-2019-2 <Java程序设计与数据结构>第九周学习总结 教材学习内容总结 无向图 图是由结点和这些结点之间的连接构成 就图来说,结点叫做顶点,结点之间的连接 ...

  2. 20172306 2018-2019 《Java程序设计与数据结构》第一周学习总结

    20172306 2018-2019 <Java程序设计与数据结构(下)>第一周学习总结 教材学习内容总结 第一章 概述 (程序=数据结构+算法 软件=程序+软件工程) 1.1 软件质量 ...

  3. 20172306《Java程序设计与数据结构》第一周总结

    20172306<Java程序设计>第一周学习总结 教材学习内容总结 本周主要学习<Android和Java>书中的第二十三章和第二十六章. 第二十三章:Android简介 A ...

  4. 20172306《Java程序设计与数据结构》第九周学习总结

    20172306<Java程序设计>第九周学习总结 教材学习内容总结 第十一章: try-catch语句.其中还有finally语句.try是进行某些操作,catch是捕获异常,并通过某些 ...

  5. 《JAVA程序设计》_第八周学习总结

    一.学习内容 1.泛型类声明--15.1知识 可以使用"class 名称"声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class People<E> ...

  6. 20162323周楠《Java程序设计与数据结构》第六周总结

    学号 2016-2017-2 <程序设计与数据结构>第六周学习总结 教材学习内容总结 继承:从已有类派生一个新类,是面向对象程序设计的一个特点 在Java中只支持单继承,不支持多继承 继承 ...

  7. 20172306 2018-2019-2 《Java程序设计与数据结构》第八周学习总结

    20172306 2018-2019-2 <Java程序设计与数据结构>第八周学习总结 教材学习内容总结 堆 堆是具有两个附加属性的一棵二叉树 它是一个完全树 对每一结点,它小于或等于其左 ...

  8. 20172306 2018-2019-2 《Java程序设计与数据结构》第七周学习总结

    20172306 2018-2019-2 <Java程序设计与数据结构>第七周学习总结 教材学习内容总结 概述 二叉查找树是一种含有附加属性的二叉树,即其左孩子小于父结点,而父结点又小于或 ...

  9. 20172306 2018-2019-2 《Java程序设计与数据结构》第六周学习总结

    20172306 2018-2019-2 <Java程序设计与数据结构>第六周学习总结 教材学习内容总结 概述(了解一下树的一些概念) 树是一种非线性结构.树由一个包含结点和边的集构成,其 ...

  10. 20172306《Java程序设计与数据结构》第十周学习总结

    20172306<Java程序设计>第十周学习总结 教材学习内容总结 本章主要的讲的是集合有关的知识: 1.集合与数据结构 - 集合是一种对象,集合表示一个专用于保存元素的对象,并该对象还 ...

随机推荐

  1. STM32f4 ARM Bootloader

    参考资料: 基于ARM 的嵌入式系统Bootloader 启动流程分析 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计) Android系统启动 ...

  2. Linux之批量挂载硬盘

    ############parted工具分区############### #!/bin/bash #shell脚本开头格式PATH=/bin:/sbin:/usr/bin:/usr/sbin #保证 ...

  3. WPF自学入门(四)WPF路由事件之自定义路由事件

    在上一遍博文中写到了内置路由事件,其实除了内置的路由事件,我们也可以进行自定义路由事件.接下来我们一起来看一下WPF中的自定义路由事件怎么进行创建吧. 创建自定义路由事件分为3个步骤: 1.声明并注册 ...

  4. 【BZOJ3172】单词(AC自动机)

    [BZOJ3172]单词(AC自动机) 题面 Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. Input ...

  5. 【BZOJ3531】旅行(树链剖分,线段树)

    [BZOJ3531]旅行(树链剖分,线段树) 题面 Description S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足 从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教 ...

  6. 什么是tcp/ip

    在了解Tcp /Ip之前.我们需要了解几个名词的含义: 什么是IP? IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层:相反,IP层也 ...

  7. 去中心化类微博应用 mastodon

    一句话重点,去中心,没监管,自己对自己信息做主,没人随便删你消息的分布式社交应用 mastodon. 建了一个实例, https://cncs.io 来专门讨论计算机相关信息,欢迎大家注册来玩.已有用 ...

  8. python 批量删除mysql前缀相同的表

    1,一般游戏log数据库会存储大量的玩家行为日志,一种行为一张表,每天生成一张新表,一天会有30+张不同行为的表,通常会保留玩家日志1年左右,对于超过1年的日志需要删除 2,log数据库一年会保存1W ...

  9. WP Super Cache+七牛云配置CDN加速,让你的网站秒开

    CDN加速网站是几乎所有的站长都在考虑的问题,CDN,全称是Content Delivery Network,即内容分发网络.所谓CDN加速,通俗的来说就是把原服务器上数据复制到其他服务器上,用户访问 ...

  10. 【Unity3D与23种设计模式】享元模式(Flyweight)

    GoF中定义: "使用共享的方式,让一大群小规模对象能更有效地运行" 享元模式一般应用在游戏角色属性设置上 游戏策划需要通过"公式计算"或者"实际测试 ...