20145302张薇《Java程序设计》第六周学习总结
20145302 《Java程序设计》第六周学习总结
教材学习内容总结
第十章
- 串流设计的概念

- 无论来源和目的地实体形式是什么,只要取得InputStream和OutputStream实例后,就只是调用InputStream和OutputStream的相关方法。
- 如果要将数据写入目的地,可以使用输出串流。
dump()方法
import java.io.*;
public class IO {
public static void dump(InputStream src, OutputStream dest)
throws IOException {
try (InputStream input = src; OutputStream output = dest) {
byte[] data = new byte[1024];
int length;
while ((length = input.read(data)) != -1) {
output.write(data, 0, length);
}
}
}
}
- 将某个文档读入并另存为另一个文档:
import java.io.*;
public class Copy {
public static void main(String[] args) throws IOException {
IO.dump(
new FileInputStream(args[0]),
new FileOutputStream(args[1])
);
}
}
- 从HTTP服务器读取某个网页,并另存为文档:
import java.io.*;
import java.net.URL;
public class Download {
public static void main(String[] args) throws IOException {
URL url = new URL(args[0]);
InputStream src = url.openStream();
OutputStream dest = new FileOutputStream(args[1]);
IO.dump(src, dest);
}
}
- 串流继承结构
- 将标准输入指定为
FileInputStream,可以读取指定文档并显示在文本模式:
import java.io.*;
import java.util.*;
public class StandardIn {
public static void main(String[] args) throws IOException {
System.setIn(new FileInputStream(args[0]));
try (Scanner file = new Scanner(System.in)) {
while (file.hasNextLine()) {
System.out.println(file.nextLine());
}
}
}
}
- 串流处理装饰器
- BufferInputStream与BufferOutputStream会将数据尽量地读取或者写入到缓冲区,从而提高效率 -DataInputStream与DataOutputStream提供读取写入java基本类型的方法.
- ObjectInputStream与ObjectInputStream将数据读入或写出为对象.
- Reader与Writer继承架构
- FileReader、FileWriter可以对文档作读取或写入,默认会使用操作系统默认编码。
- 抽象化了数据读入和写出的目的地,会将读入的数据植入char数组中.
- 字符处理装饰器可以使用BufferReader和BufferWriter将数据进行缓冲,增加读取写入效率。
第十一章 - 线程介绍
- 通过创建Thread实例来执行Runnable实例定义的run方法可以实现多个线程。
- Thread和Runnable
- 继承Thread类也可以进行多个进程,但没有Runnable的弹性好,运用Lambda表达式也可以简化程序。
- 线程生命周期
- Daemon:在所有的非Daemon线程结束时,JVM就会自动终止
- sleep、wait阻断等都会让线程进入blocked状态,运用多线程,避免cpu空闲下来,是改进效能的方式之一。
- ThreadGroup
- 用来管理群组中的线程,enumerate可以取得群组中的所有线程,activecount()用来取得线程的数量
- synchronized和volatile
- 被表示为synchronized的区块会被监控(monitor),需要先取得指定对象锁定后才能执行,线程因synchronized区块而进入blocked,在取得锁定之后,会先回到runnable状态,不正确地使用synchronized可能会造成效能低落或者死结。
- volatile 变量上声明,表示该变量是不稳定的、易变的,并且不允许线程快取,保证单一变数的可见性。
- 等待与通知
wait、notify、notifyAll- Lock、ReadWriteLock与Condition
- 如果两个方法都只是读取对象状态,并没有更改对象状态,只是读取操作的话,允许多个线程并行会对读取效率有所改善 ReadWriteLock接口就定义了读取锁定与写入锁定行为。
- 使用Executor
- Executor接口可以将Runnable的指定与实际如何执行分离.
- Collection
- CopyOnWriteArraySet操作set接口,使用于一个很少进行写入操作,而使用迭代器频繁的情境。
教材学习中的问题和解决过程
第十章课后练习
- AC BD AC BD A BC BD BD D ABD
第十一章课后练习 - A B B AB AB D B A B C
代码调试中的问题和解决过程
问题1
在托管代码时,出现下图:

在这次之前我先弄过一次,但是他当时显示我没有公钥,然而我上周弄得时候还好好的,我把git窗口关掉后再次输入得出上图。
问题2托管未成功之后,所有的程序都不可以运行了,如下图:

问题3
- 程序无法运行与调试。运行里面没有该java文件名字,然后我想尝试一下调试程序,但是调试时出现下图(是一个无关文件的错误):

本周代码托管截图
- 由于托管出了问题,先给出文件截图


其他(感悟、思考等,可选)
- 这周好累,作业如潮水般袭来,得挺住啊
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 1500行 | 15篇 | 400小时 | |
| 第一周 | 10/10 | 2/2 | 10/10 | 基础知识 |
| 第二周 | 50/60 | 1/3 | 35/35 | 语法知识 |
| 第三周 | 100/160 | 1/4 | 25/60 | 了解对象 |
| 第四周 | 150/310 | 1/5 | 30/90 | 面向对象 |
| 第五周 | 390/700 | 1/6 | 30/120 | 处理异常 |
| 第六周 | 300/1000 | 2/8 | 30/150 | 输入输出 |
参考资料
20145302张薇《Java程序设计》第六周学习总结的更多相关文章
- 20145302张薇 《Java程序设计》第二周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...
- 20145302张薇《Java程序设计》第九周学习总结
20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...
- 20145302张薇 Java第一周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 1995年,java被公认诞生.java第一开始为了消费性数字产品(如手机)而设计,所以java本身有很 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 20145313张雪纯 《Java程序设计》8周学习总结
20145313张雪纯 <Java程序设计>8周学习总结 教材学习内容总结 java.util.logging包的优点在于提供了日志功能相关类与接口,不必额外配置日志组件就可以在标准jav ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...
- 20175305张天钰《java程序设计》第九周学习总结
<java程序设计>第九周学习总结
随机推荐
- 【BZOJ2973】石头游戏 矩阵乘法
[BZOJ2973]石头游戏 Description 石头游戏的规则是这样的. 石头游戏在一个n行m列的方格阵上进行.每个格子对应了一个编号在0~9之间的操作序列. 操作序列是一个长度不超过6且循环执 ...
- netty接收大文件的方法
参考:http://blog.csdn.net/linuu/article/details/51371595 https://www.jianshu.com/p/a0a51fd79f62 netty默 ...
- java基础之Flex弹性布局、JSP错误处理以及Log4J
一.Flex弹性布局 1.产生的比较晚,目前在移动网页开发中可以使用,而且逐渐成为主流. 在桌面网页开发中使用的比较少(主要是桌面浏览器的兼容性问题更加严重) 2.开启方法: 在容器标签上加上 dis ...
- java面试基础题------》Java 中的final关键字有哪些用法
(1)修饰类:表示该类不能被继承: (2)修饰方法:表示方法不能被重写: (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量).
- 20165330 预备作业3 Linux安装及学习
虚拟机安装 在安装VirtualBox时我的电脑一直打不开官网的下载地址,还好后面有可以打开了,于是我顺利的下载好了VirtualBox.而在运行出现了以下错误: 错误1:点击创建虚拟机时出现了以下提 ...
- ArcEngine之Provide your license server administrator with the following information.error code =-42
今天打开VS,不一会就出现了下面的对话框,感到非常疑惑,仔细一想,原来是昨天不小心把权限弄错了! 解决办法:在控价中找到AxLicenseControl,右键属性,把权限改为ArcGIS Engine ...
- linux系统centOS在虚拟机下的自定义安装
一 前戏 1.1在官网找到合适的版本,镜像文件 1.2安装VMware FF590-2DX83-M81LZ-XDM7E-MKUT4 CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3 ...
- 【我的Android进阶之旅】Android 7.0报异常:java.lang.SecurityException: COLUMN_LOCAL_FILENAME is deprecated;
之前开发的一个和第三方合作的apk,在之前公司的 Android 5.1 系统的手表上运行正常,今天在公司新开发的 Android 7.1系统的手表上运行的时候,使用 DownloadManager ...
- solr 查询
1.常用查询参数说明 q - 查询字符串,必须的. fl - 指定返回那些字段内容,用逗号或空格分隔多个. start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用. rows - ...
- 怎样将Arranged_2压入General_Polygon_set_2中
Thursday, March 14, 2013 How to Jam an Arrangement_2 into a General_polygon_set_2 I spent about thre ...