代码改变世界

20169201 2016-2017-2 《移动平台应用开发实践》 第五周学习总结

2017-03-29 22:13  melay  阅读(189)  评论(8编辑  收藏  举报

教材学习内容总结

第十六章:输入/输出

  • 创建和删除文件
  • 从一个文件或网络套接字读取内容,或写入内容
  • 把对象序列化到持久存储中,并且获取保存的对象

文件系统包含三种类型的对象:

  • 文件
  • 目录
  • 符号链接

路径

  • 绝对路径
  • 相对路径

输入/输出流

  • Reader:向池中读取字符的流
  • Writer:向池中写入数据的流
  • InputStream:从一个池中读取二进制数据的流
  • OutputStream:向一个池中写入二进制数据的流

随机访问文件

  • java.nio.channels.SeekableByteChannel
    可以执行读和写,经常使用
  • java.io.RandomAccessFile

对象序列化

  • ObjectInputStream,代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。
  • ObjectOutputStream,代表对象输出流,它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。只有实现了Serializable和Externalizable接口的类的对象才能被序列化。

第十九章:线程

  • 线程:基本的处理单元,操作系统分配处理时间都是按照线程来进行的。也叫轻量级的进程,也叫执行环境。

  • 多线程:拥有多个线程的程序。

  • 创建线程:

    • 扩展java.lang.Thread类
    • 实现java.lang.Runnable接口:必须实例化Thread类并传递Runnable。
  • 线程优先级:调用setPriority方法

  • 停止线程:Thread类有一个stop方法,用来停止一个线程

  • 线程干扰:两个线程同时访问相同资源时会出现线程干扰

  • 原子操作:可以组合起来让系统的其他部分将其当做是一个单个的操作的一组操作

  • 互斥:一个锁定的对象只能由一个线程访问。synchronized修饰符用来锁定一个对象

  • 可见性:volatile解决可见性问题,但不能用来解决互斥问题。

  • 使用定时器:Java.util.Timer类提供了执行调度的或重复性任务的替代方法

第22章:网络

计算机网络通过两台计算机之间的通信连接而成。
网络

  • 局域网(LAN):限定在有效的地理区域内
  • 广域网(WAN):有地理上分隔开的多个LAN组成

应用层协议:

  • HTTP:超文本传输协议,允许web服务器和浏览器之间的通过互联网发送和接受数据的协议。
  • FTP
  • telnet

传输层协议:

  • TCP
  • UDP

HTTP请求:

  • 方法:统一资源标识符(URI)
  • 请求头
  • 请求实体

HTTP响应:

  • 协议-状态码-说明
  • 响应头
  • 响应实体

URL:互联网资源的唯一地址
Socket:套接字是一个网络连接的端点。一旦成功创建Socket类的一个实例,就可以使用它发送和接收字节流。

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

  • 对书本上的对象序列化不是很理解?
  • 解决方案:
    序列化:把Java对象转换为字节序列的过程。
    反序列化:把字节序列恢复为Java对象的过程。
    对象的序列化主要有两种用途:
      1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
      2) 在网络上传送对象的字节序列。

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

  • 问题1:在执行复制、移动文件时,如果操作文件所在位置在C盘,会报错?

  • 解决方案:C盘所在文件具有权限限制,把文件移到其他盘即可。

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 输入“cd”命令并按回车键,将会出现什么情况

    • Linux下是从当前目录切换到用户主目录
    • Windows下是屏幕显示当前目录
  • 已知某用户stud1,其用户目录为/home/stud1.如果当前目录为/home,使用那个命令后进入/home/stud1/test

    • Linux下 cd stud1/test
    • Windows cd /stud1/test

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/1 12/12
第二周 180/200 1/2 20/32
第三周 262/462 1/3 22/54
第四周 477/931 1/4 18/72
第五周 725/1656 1/5 20/92 线程、网络学习

参考资料