教材学习内容总结

8.1语法与继承架构

  • try和catch语法,如果被try{}的语句出现了catch()的问题就执行catch{}的语句。
  • 错误的对象都继承于java.long.Throwable,它又分成java.long.Error和java.long.Exception
  • Error是java程序没办法恢复的
  • 而Exception又分成不属于RunTimeException的受检异常和属于RunTimeException的非受检异常
  • 受检异常是认为调用方法的客户端有能力处理的
  • 非受检异常在执行时满足一定条件会出现,又称执行时期异常

代码运行结果:

异常继承架构

  • Throwable 定义了取得错误信息、堆栈追踪等方法,有两个子类:java.lang.Error 与 java.lang.Exception
  • 异常处理:程序设计本身的错误,建议使用 Exception 或其子类实例来表现,所以通常称错误处理为异常处理
  • 单就语法与继承架构上来说,如果某个方法声明会抛出 Throwable 或子类实例,只要不是属于 Error、ava.lang.RuntimeException 或其子类实例,你就必须明确使用 try、catch语法加以处理,或者用 throws 声明这个方法会抛出异常,否则会编译失败
  • 受检异常:Exception 或其子对象,但非属于 RuntimeException 或其子对象,称为受检异常
  • 执行期异常(非受检异常):因为编译程序不会强迫一定得在语法上加以处理,亦称为非受检异常
  • 规则表达式:String 的 matches() 方法中设定了 "\d*",这是规则表示式,表示检查字符串中的字符是不是数字,若是则 matches() 返回 true
  • 如果父类异常对象在子类异常对象前被捕捉,则 catch 子类异常对象的区块将永远不不会被执行

9.1 使用 Collection 收集对象

  • 认识 collection 架构
  • 收集对象的行为,像是新增对象的 add()方法、移除对象的 remove()方法等,都是定义在 java.util.Collection 中
  • 既然可以收集对象,也要能逐一取得对象,这就是 java.lang.Iterable 定义的行为,它定义了 iterator() 方法返回 java.lang.Iterable 操作对象,可以让你逐一取得收集的对象
  • 收集对象的共同行为定义在 Collection 中,然而收集对象会有不同的需求
  • java.util.List:收集时记录每个对象的索引顺序,并可依索引取回对象
  • java.util.Set:收集的对象不重复,具有集合的行为
  • java.util.Queue:收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端
  • java.util.Deque:可对Queue的两端进行加入、移除等操作
  • java.util.ArrayList:以数组操作 List(想要收集对象时具有索引顺序,操作方法之一是使用数组)
  • List 是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序,其操作类之一是java.util.ArrayList
  • ArrayList 特性:考虑是否使用 ArrayList,就等于考虑是否要使用到数组的特性。数组在内存中会是连续的线性空间,根据索引随机存取时速度快,如果操作上有这类需求时,像是排序,就可使用
  • ArrayList,可得到较好的速度表现
  • LinkedList在操作List接口时,采用了链接(Link)结构
  • 在 SimpleLinkedList 内部使用 Node 封装新增的对象,每次 add() 新增对象之后,将会形成链状结构
  • 若收集的对象经常会有变动索引的情况,也许考虑链接方式操作的List会比较好,像是随时会有客户端登录或注销的客户端List,使用LinkedList会有比较好的效率
  • 使用 Set 接口操作对象:在收集对象的过程中若有相同的对象,则不再重复收集,若有这类需求,可以使用 Set 接口的操作对象

9.2 键值对应的Map

  • 若要根据某个键来取得对应的值,可以事先利用java.util.Map接口的操作对象来建立键值对应数据,之后若要取得值,只要用对应的键就可以迅速取得
  • 建立 Map 操作对象时,可以使用泛型语法指定键与值的类型
  • 要建立键值对应,可以使用 put() 方法,第一个自变量是键,第二个自变量是值
  • 对于 Map 而言,键不会重复,判断键是否重复是根据 hashCode() 与 equals(),所以作为键的对象必须操作 hashCode() 与 equals()。若要指定键取回对应的值,则使用 get() 方法
  • 如果想要键是有序的,可以使用 TreeMap。如果使用 TreeMap 建立键值对应,则键的部分将会排序,条件是作为键的对象必须操作 Comparable 接口,或者是在创建 TreeMap 时指定操作 Comparator 接口的对象。
  • 在java的规范中,与顺序有关的行为,通常要不对象本身是Comparable,要不就是另行指定Comparator对象告知如何排序;若要根据某个键来取得对应的值,可以事先利用java.util.Map接口的操作对象来建立键值对应数据,之后若要取得值,只要用对应的键就可以迅速取得。常用的Map操作类为java.util.HashMap与java.util.TreeMap,其继承自抽象类java.util.AbstractMap
import java.util.*;

public class MapKeyValue2
{
public static void main(String[] args)
{
Map<String, String> map = new TreeMap<>();
map.put("one", "一");
map.put("two", "二");
map.put("three", "三");
foreach(map.entrySet());
} static void foreach(Iterable<Map.Entry<String, String>> iterable)
{
for(Map.Entry<String, String> entry: iterable)
{
System.out.printf("(鍵 %s, 值 %s)%n",
entry.getKey(), entry.getValue());
}
}
}

代码托管情况

其他(感悟、思考等,可选)

假期在学校学JAVA也是挺好的,虽然外面天气不错。外面的世界很精彩,但JAVA中探索新的知识也是另一番天地。春天是个充满朝气的季节,就让我们迎着春风,以全新的,积极的,充满斗志面貌去学习新的知识,不负青春年华!

20145235 《Java程序设计》第5周学习总结的更多相关文章

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

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

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. display : -webkit-box-inline 的理解

    发现: 最近在做移动端的东西,说起移动端弹性盒子布局真是无往不利,用起来特别爽,我也是偶尔间发现的这个属性并且它的用法,在网上基本查不到这个属性的资料(个人看法).如果没有听说过(display:bo ...

  2. Pyqt在QListWidget中添加右键菜单

    Pyqt 的资料奇少, 攻破难点之后, 就在这里记一下笔记. QListWidget 是继承 QWidget 的, 所以 QListWidget 是有右键菜单的, 从文档上可以找到 QWidget 上 ...

  3. 修改Tomcat编码方式的两种方法

    转自:http://blog.sina.com.cn/s/blog_7c76d63901018lyt.html 方法一:推荐,不会影响到其它项目  见我的另一篇博客:http://www.cnblog ...

  4. Java Serializable(序列化)

    1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...

  5. java环境变量配置(转)

    java环境变量配置 windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08: 2.安装完成后,右 ...

  6. 【bzoj3343】教主的魔法 分块

    [bzoj3343]教主的魔法 2014年4月26日8092 Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了 ...

  7. 浅谈c++ new and delete or new [] and delete []

    http://www.cnblogs.com/hazir/p/new_and_delete.html 在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问 ...

  8. loadrunner关联边界乱码

    问题现象: 如上图中的我想关联 <ins class="curmarker" id="cur2494"></ins><ins cl ...

  9. JVM的类加载机制

    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类加载的过程: 包括加载.链接(含验证.准备 ...

  10. js:工具库-highcharts.js

    主要用于方便绘制图标,注意是需要付费的: 相关连接: 官网 中文网 祛除自带标识的代码: credits: { enabled: false //remove the logo and button ...