20175320 2018-2019-2 《Java程序设计》第6周学习总结

教材学习内容总结

  • 本周学习了教材的第七及第十章的内容。在这两章中介绍了接内部类与异常类以及输入、输出流,第七章着重讲了如何在内部类的基础上实现匿名类,如何用自定义的异常类来处理程序运行时发生的异常情况。第十章着重讲了文件的创建与操作以及如何利用各种输入输出流来对文件进行操作。
    第七章总结:
  • 内部类和外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法;内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象;内部类仅供它的外嵌类使用。
  • 内部类可以被修饰为static内部类,其他类可以使用static内部类来创建对象,但static内部类不能操作外嵌类中的实例成员变量,非内部类不可以是static类。
  • 匿名类即可在不声明对象名的情况下创建一个对象。
  • Java使用throw关键字抛出一个Exception子类的实例表示异常发生,教材介绍了自带的异常类NumberFormatException和IOException。
  • Java将可能出现的异常操作放在try部分,将发生异常后的处理放在catch部分,catch参数中的异常类都是Exception的某个子类。
  • Java使用关键字assert声明一条断言语句,调试程序时可以使用-ea启用断言语句。
    第十章总结:
  • 输入流的指向称为它的源,程序通过输入流读取源中的数据,输出流指向目的地,程序通过输出流把数据传送到目的地。
  • File类的对象主要用来获取文件本身的一些信息以及创建目录,不涉及对文件的读写操作,如果File对象是一个目录,那么该对象可调用方法来列出目录下的文件和子目录以及目录下指定类型的文件。
  • 方法createNewFile可以创建一个目录中没有的文件,delete方法可以删除当前文件
  • 在使用字节输入输出流时一定要在try块部分创建输出流,在catch块部分检测并处理这个异常,调用close()方法可以保证操作系统把缓冲区的内容写到目的地。
  • 在Writer流中,write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容被自动写入到目的地,如果关闭流,缓冲区的内容会立刻被写入到目的地。流调用flush()方法可以立刻冲洗当前缓冲区。
  • 缓冲流的源和目的地必须是字符输入流和字符输出流,缓冲流是上层流,它们指向的字符流称为底层流。
  • 随机流既可读也可写,但需要在非ASCII字符的文件中进行重新编码。
  • 数组流的源和目的地是计算机内存。
  • 数据流允许程序按着机器无关的风格读取Java的原始数据,需要底层流。
  • 对象流可将一个对象写入到一个文件或读取一个对象到程序中,当使用对象流写入或读入对象时,要保证对象是序列化的。。
  • 对象流将数组流作为底层流就可以将对象的序列化信息写入内存。

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

本周的学习内容并不算难度很高,在学习过程中没有什么困难,但是相关类以及方法较多且较繁杂,需要时间去熟悉和理解。

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

  • 问题1:运行第十章的第三个程序时发生如图错误:
  • 问题1解决方法:发现是在虚拟机中没有该目录,于是修改代码第五行的文件目录。
  • 问题2:运行第十章第六个程序时发生如图错误:
  • 问题2解决方法:发现是没在源程序的目录中创建"a.txt"文件。

代码托管

上周考试错题总结

  • 上周测试中无错题。

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

Java是一门比较复杂的语言,它为了实现功能而产生了很多类和方法,如何熟悉并正确地使用这些类和方法应该是我今后努力的方向。教材的各个各个章节联系紧密,经常需要联系前面的章节,而前面章节不清楚的地方要看到后面才能明白,而这次项目的内容我也用到了教材中提供的代码,这提示我们对教材要有相当高的熟练度,要多看教材。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第六周 1994/5253 3/10 25/132

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

参考资料

20175320 2018-2019-2 《Java程序设计》第6周学习总结的更多相关文章

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

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. IDEA 中使用MyBatis-generator 自动生成MyBatis代码

    0.在Intellij IDEA创建maven项目 1. 在maven项目的pom.xml 添加mybatis-generator-maven-plugin 插件 <build> < ...

  2. NB卡开卡注意事项【转】

    转自:https://blog.csdn.net/cheng401733277/article/details/83276436 版权声明:本文为博主原创文章,未经博主允许不得转载. https:// ...

  3. 两个c语言结构体复制的问题

    以前一直以为结构体要通过memcpy来复制,现在才明白可直接用“=”复制 C语言中,结构体是一篇连续的内存空间,使用=赋值操作,底层用到的就是memcpy:如果结构体中有指针变量:操作后.两个指针指向 ...

  4. 基于BootStrap的initupload()实现Excel上传和获取excel中的数据

    简单说明:后边要做exl解析(还没做呢),所以先有一个excel的的上传以及获取excel中的数据,展示出来. 代码: //html代码 <div class="btn-group&q ...

  5. Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  6. php扩展打开不起作用的原因, php数字显示2147483647的原因

    因为公司订单id类型是bigint, 而PHP32位最大整数是2147483647 . 所以需要重新下载PHP64位. laravel总是报错 Call to undefined function I ...

  7. 潭州课堂25班:Ph201805201 tornado 项目 第六课 用户和图片分享的集成(课堂笔记)

    tornado 相关说明 改善图片上传功能 ,生成唯一的 ID ,与路径拼接,生成 URL, 这里引用 uuid 的 python 库 在 photo.py 中创建个类,用来  辅助用户上传的图片,生 ...

  8. C# - 什么是事件绑定?

    今天在学习C#时碰到了一个新词:“绑定事件”,不知道是什么东西? 请各位C#前辈指点!!!

  9. Java 多线程 sleep()方法与yield()方法的区别

    sleep()方法与yield()方法的区别如下: 1 是否考虑线程的优先级不同 sleep()方法给其他线程运行机会时不考虑线程的优先级,也就是说,它会给低优先级的线程运行的机会.而yield()方 ...

  10. javascript 时间函数整理

    对Javascript日期的部分函数做个小结: var myDate = new Date();//定义时间函数 myDate.getYear();  //获取当前年份(2位) myDate.getF ...