20145320 《Java程序设计》第5周学习总结
20145320 《Java程序设计》第5周学习总结
教材学习内容总结
8.1 语法与继承架构
try、catch
Java中的错误会被包装为对象,而使用try
与catch
,JVM会执行try
区块中的程序代码。若发生错误,执行流程会比对catch
括号中声明的类型,是否符号被抛出的错误对象类型,如果是的话就执行catch
区块中程序代码
异常继承架构
错误会被包装为对象继承自java.lang.Throwable
,他有两个子类java.lang.Error
与java.lang.Exception
。
Error
与其子类代表严重系统错误,建议不用try
与catch
处理,因为java可能无力回天。
而程序设计本身的错误建议使用Exception
实例表现,常称为错误处理为异常处理。
若某个方法声明会抛出Thorwable
或子类实例,只要不是属于Error
或java.lang.RuntimeException
,就必须明确使用try
、catc
h语法加一处理,或者在方法中使用throws
声明这个方法会抛出异常,否则编译失败
认识堆栈追踪
堆栈追踪信息中显示了异常类型,最顶层是异常的根源,但是前提是程序代码中不可有私吞异常的行为、对异常做了不适当的处理,或显示了不正确的信息
8.2 异常与资源管理
若有撰写finally块,则无论try区块中有无发生异常,finally区块一定会被执行。假如在流程中先遇到了return,那么finally块还是先执行在返回值
若一个异常被catch后的处理过程引发另一个异常,会抛出第一个异常作为响应,在java.lang.Throwable
中新增了addSuppressed()
方法,把第二个异常记录在第一个异常之中。
尝试关闭资源语法也可以同时关闭两个以上对象资源,只要中间以分号分隔。在try
的括号中,越后面撰写的对象资源会越早被关闭
9.1 使用Collection架构
认识Collection架构
如同数据结构一样,在java.util.Collection中有增、删、遍历对象
add、
remove、
clear、
size、
iterator
(如图)
具有索引的List
核心方法
add(int index, E element)
、
remove(int index)
、
set(int index, E element)
ArrayList相当于数据结构的线性表,
LinkedList相当于数据结构链式表
内容不重复的set
在收集过程中若有相同对象,想要重复收集,可以使用set接口的操作对象
支持队列操作的Queue
除了Collection中的操作之外,Queue还定义了自己的offer()、poll()、peek(),出错时返回特定值
Queue与Deque之间的差别
9.2 键值对应的Map
如网络搜索,根据关键字可以找到对应数据,程序设计中的java.util.Map接口的操作对象用来简历键值对应数据,之后若要取值只要对应的键就可用迅速取得了
常用的Map操作类有HashMap、TreeMap与Properties三种。
如果想取得Map中所有的键,可以调用Map的keySet()返回Set对象。由于键是不重复的,所以使用Set操作返回或者使用values()返回Collection对象
教材学习中的问题和解决过程
对于9.1节中各个类都与数据结构联系紧密,在用计算机知道怎么之前,首先人要知道怎么做,比如一些增删查改的操作。
自己看起来都懂了,但是要自己敲一个代码出来确实有点困难,周四考试就已经体现了这个问题了。
代码调试中的问题和解决过程
public class Main {
public static void main(String[] args){
Object[] objs={"Java","7"};
Integer number =(Integer) objs[1];
System.out.println(number);
}
}
这段代码错在把String型强制为了Int型,则系统就会ClassCastException堆栈追踪
public class Main {
public static void main(String[] args){
try{
int number =Integer.parseInt(args[0]);
System.out.println(number++);
}catch(NumberFormatException ex){
System.out.println("必须输入数字");
}}}
这段代码若在IDE中运行不会显示NumberFormatException,而是ArrayIndexOutOfBoundException。但是若在指令行输入自变量one,就会显示“必须输入数字”
其他(感悟、思考等,可选)
随着java的深入学习,我发现课本上的内容已经越来越难懂了,要想真正完全搞懂,不仅要读很多遍书,还要敲很多代码,这些代码最好还是自己原创的。我苦于自己没有这么多时间敲这么多代码,感觉自己被java滚雪球了,不过学了这么久java,发现java里面的知识比c语言更多,比c语言好用一点。
代码托管如图
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 20篇 | 400小时 | |
第二周 | 300/500 | 1/2 | 18/38 | |
第三周 | 300/ 800 | 1/3 | 22/60 | |
第四周 | 300/1100 | 1/4 | 30/90 | |
第五周 | 300/1400 | 1/5 | 20/110 |
参考资料
20145320 《Java程序设计》第5周学习总结的更多相关文章
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- [深入浅出WP8.1(Runtime)]浮出控件(Flyout)
4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,通常会作为提示或者要求用户进行相关的交互来使用.Flyout控件与Windows Phone里面的弹出框Mes ...
- JS:原型
function Box(){ } //使用字面量的方式创建原型对象,这里{}就是对象,是Object, new Object相当于{} Box.prototype = { name:" ...
- UITableView常见 UI 问题总结
一,经历 1.让 group 形式的UITableView的单元格也可以修改separatorStyle属性来设置. 2.修改group形式的UITableView的 cell 之间的间距,可以更改s ...
- Oracle connect by 树查询之三(超详细)
查找员工编号为7369的领导: 1 SELECT LEVEL,E.* FROM EMP E CONNECT BY PRIOR E.MGR = E.EMPNO START WITH E.EMPNO = ...
- select..in(参数化) 解决注入式问题
方案1 为where in的每一个参数生成一个参数,写法上比较麻烦些,传输的参数个数有限制,最多2100个,可以根据需要使用此方案 using (SqlConnection conn = new Sq ...
- 向linux内核中添加外部中断驱动模块
本文主要介绍外部中断驱动模块的编写,包括:1.linux模块的框架及混杂设备的注册.卸载.操作函数集.2.中断的申请及释放.3.等待队列的使用.4.工作队列的使用.5.定时器的使用.6.向linux内 ...
- C#操作文件夹及文件的方法的使用
本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内容 ...
- CAS单点登录系统整合——注册的问题
最近一段时间在搞CAS单点登录系统,涉及到几个子系统的整合问题.对于注册,这里遇到了一个选择: 在子系统内完成注册,然后把信息同步到CAS系统: 在CAS系统中完成基本信息的注册,比如:用户名.邮箱. ...
- 在MySql 5.0 的表里同时添加两个自动更新的timestamp字段
create table user_info (user_id int primary key auto_increment, register_time timestamp not null DEF ...
- android-数据存储之远程服务器存储
一.如何编码实现客户端与服务器端的交互 <一>JDK内置原生API HttpUrlConnection <二>Android内置的包装API HttpClient浏览器 < ...