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

教材学习内容总结

  • 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的

  • InputStream与OutputStream

    • read
    • write
    • 二进制文件
  • 标准输入输出

    • System.in: 标准输入,默认关联到键盘(终端输入)
    • System.out: 标准输出,默认关联到显示器(终端输出)
    • System.err: 标准错误,默认关联到显示器(终端输出)
    • 输入输出重定向:setIn,setOut,setErr
  • FileInputStream与FileOutPutStream

    • 文件读写
  • 装饰器类

    • Decorator模式
    • BufferedInputStream与BufferedOutputStream: 内部提供缓冲,提高效率
    • DataInputStream与DataOutputStream:基本数据类型与字节的转换,API好好研究一下
    • ObjectInputStream与ObjectOutputStream

      java.io.Serializable接口
  • Reader与Writer

    • 文本文件
    • read
    • write
  • 字符处理装饰器

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

  • 问题1:课本P306,args[0]args[1]分别代表什么?
  • 问题1解决方案:Java的主方法为public static void main(String[] args),arg[0]表示命令行输入时传的第一个参数,args[1]同理。
  • ...

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

  • 问题1:课本P293,LoadProperties编译出错

  • 问题1解决方案:可能是因为没有.properties文档。
  • ...

代码托管

git push失败

上周考试错题总结

  • 错题1

现有:

 1. class Flow {
2. public static void main(String [] args) t
3. try { 4 . System. out .print ("before") ; 5 . doRiskyThing ( ) ; 6. System.out.print ("after ") ; 7. } catch (Exception fe) { 8. System.out.print ("catch") ; 9. } 10 . System. out .println ( " done") ; 11. } 12. public static void doRiskyThing() throws Exception{ 13.
}}

可能会产生哪两项结果 ?(选两项)

A .before catch

B . before after done

C . before catch done

D . before after catch

正确答案: B C

解析:

doRiskyThing中有throw C,否则B

  • 错题2

下列哪些项是泛型的优点? (选两项)

A . 不用向下强制类型转换

B . 代码容易编写

C . 类型安全

D . 运行速度快

正确答案: A C

  • 错题3

Which of the following methods will not compile? :

A . private void method1(String name) {

if (name.equals("star"))

throw new IllegalArgumentException(name);

}

B . private void method2(int age) {

if (age > 30)

throw Exception();

}

C . public double method5() throws Exception {

return 0.7;

}

D . protected double method4() throws Exception {

throw new Throwable();

}

正确答案: B D

解析:

成功编译的方法,正确不是可能实现的。

这个问题只有询问将因此遵循的语法规则的方法,他们成功编译。

(A) 代码选项编译成功。因为则抛出运行时异常,method1()可以把它扔而无需声明它扔进其抛出声明。

(B) 选项代码无法编译。method2() 抛出检查的异常,那就是,而无需声明它在其抛出声明中引发的异常。虽然中选项的代码。A

方法可以不包括在其方法声明的 throws 子句中引发过程 (未经检查的异常)。

(C) 选项代码将成功编译。如果一个方法将声明抛出异常,它可能不实际抛出它。这只适用于例外 (因为运行时 Exception 子类它),运行时异常和错误

(D) 选项代码无法编译。如果一个方法将声明要抛出检查的异常,它的身体不能在它的身体扔一个更一般的异常。method4() 声明为抛出异常,但抛出 Throwable,这不允许 (异常子类可抛式)。

  • 错题4

What is the output of the following code?:

class EJava {
void method() {
try {
guru();
return;
} finally {
System.out.println("finally 1");
}
}
void guru() {
System.out.println("guru");
throw new StackOverflowError();
}
public static void main(String args[]) {
EJava var = new EJava();
var.method();
}
}

A . guru

finally 1

B . guru

finally 1

Exception in thread "main" java.lang.StackOverflowError

C . guru

Exception inthread"main"java.lang.StackOverflowError

D . guru

E . The code fails to compile.

正确答案: B

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:

    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:

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

  • 参考示例

点评过的同学博客和代码

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

因为周六满课,所以学习时间明显减少,这也暴露了自己主要在周六周日学习Java这一问题,以后需要注意把学习任务分配到每一天,做到有计划且高效地学习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 12/12 1/4 20/20
第二周 64/76 1/5 22/42
第三周 560/636 1/6 22/64
第四周 532/1168 1/7 20/84
第五周 510/1728 1/8 20/104
第六周 697/2425 1/9 15/119

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:25小时

  • 实际学习时间:15小时

  • 改进情况:学习时间明显减少,学习效率有所提高,但还未赶上进度。

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

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

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

    20155333 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC- ...

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

    20155333 2016-2017-2<Java程序设计>第二周学习总结 教材学习内容总结 1. Java 类型系统:基本类型和类类型(参考类型) 2. 基本类型: 整数:short整数 ...

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

    <java程序设计>第一周学习总结 学习目标 •了解java基础知识 •了解JVM.JRE与JDK,并下载.安装.测试JDK •了解PATH.CLASSPATH.SOURCEPATH的作用 ...

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

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 可视化数据matplotlib之安装与简单折线图

    matplotlib是一个可视化数据的模块,安装前需要先安装Visual Studio Community:然后去https://pypi.python.org/pypi上查找matplotlib并下 ...

  2. codeforces 873C - Strange Game On Matrix

    题目大意:给你一个n*m的只有0和1的矩阵,找到每列第一个1的位置a[i][j],a[i][j]及其a[min(k,n-i+1][j]中1的数量,每列位置值是1的可以变为0: 解题思路:因为数据较小, ...

  3. LAMP平台部署

    LAMP平台的概述 LAMP环境脚本部署:https://github.com/spdir/ShellScripts/tree/master/lamp LAMP的介绍:百度百科 LAMP平台的构成组件 ...

  4. pgm11

    这里简要的讨论 hybrid network 与一些时序数据的分析. hybrid network 指网络中存在离散随机变量与连续随机变量,这种情况下一般非常麻烦,这主要是因为连续型随机变量需要使用某 ...

  5. 洛谷P4240 毒瘤之神的考验 【莫比乌斯反演 + 分块打表】

    题目链接 洛谷P4240 题解 式子不难推,分块打表真的没想到 首先考虑如何拆开\(\varphi(ij)\) 考虑公式 \[\varphi(ij) = ij\prod\limits_{p | ij} ...

  6. CF603E Pastoral Oddities

    CF603E Pastoral Oddities 度数不好处理.转化题意:不存在连通块为奇数时候就成功了(自底向上调整法证明) 暴力:从小到大排序加入.并查集维护.全局变量记录奇数连通块的个数 答案单 ...

  7. Kafka+Log4j2日志

    默认你已经安装配置了Zookeeper和Kafka. 为了目录清晰,我的Kafka配置文件的Zookeeper部分是:加上了节点用来存放Kafka信息 启动Zookeeper,然后启动Kafka. Z ...

  8. mysql 在linux下的启动

    启动与停止 1.启动 MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可. [root@test1 init.d]# /etc/init.d/mysql ...

  9. maven自动打包上传nexus仓库配置

    一个基础类,可能要升级并放到私服库里,为了方便,应该能够自动打包放到nexus.这就需要配置maven一些参数与pom.xml. 依次在settings.xml文件裡輸入 <!-- nexus帳 ...

  10. Prometheus jvm_exporter监控zookeeper

    Zookeeper Prometheus 监控zookeeper使用jvm_exporter来采集数据,jvm_exporter是一个可以配置抓取和暴露JMX目标的mBeans的收集器. 下载java ...