20145237第六周学习总结
20145237第6周学习总结
教材学习内容总结
第十章
•InputStream与OutputStream
流(Stream)是对「输入输出」的抽象。
read:每次会尝试读入byte数组长度的数据,并返回实际读入的字节。为-1时即为未读取到数据。
write:指定要写出的byte数组、初始索引与数组长度。
•标准输入输出//这部分已经很熟悉了
System.in: 标准输入,默认关联到键盘(终端输入)
System.out: 标准输出,默认关联到显示器(终端输出)
System.err: 标准错误,默认关联到显示器(终端输出)
输入输出重定向:setIn,setOut,setErr
•其余
FileInputStream与FileOutPutStream:文件读写
BufferedInputStream与BufferedOutputStream: 内部提供缓冲,提高效率
DataInputStream与DataOutputStream:基本数据类型与字节的转换
ObjectInputStream与ObjectOutputStream:java.io.Serializable接口
•字符处理类
read:每次会尝试读入byte数组长度的数据,并返回实际读入的字节。为-1时即为未读取到数据。
write:指定要写出的byte数组、初始索引与数组长度。
package cc.openhome;
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);
}
}
}
}
第十一章 线程与并行API
·单线程程序:启动的程序从main()程序进入点开始至结束只有一个流程。示范代码如下:
import static java.lang.System.out;
public class TortoiseHareRace {
public static void main(String[] args) {
boolean[] flags = {true, false};
int totalStep = 10;
int tortoiseStep = 0;
int hareStep = 0;
out.println("龟兔赛跑开始...");
while(tortoiseStep < totalStep && hareStep < totalStep) {
tortoiseStep++;
out.printf("乌龟跑了 %d 步...%n", tortoiseStep);
boolean isHareSleep = flags[((int) (Math.random() * 10)) % 2];
if(isHareSleep) {
out.println("兔子睡着了zzzz");
} else {
hareStep += 2;
out.printf("兔子跑了 %d 步...%n", hareStep);
}
}
}
}
在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中。
在java中,从main()开始的流程会由主线程执行,可以创建Thread实例来执行Runnable实例定义的run()方法。
JVM是台虚拟计算机,只安装一颗称为主线程的CPU,可执行main()定义的执行流程。如果想要为JVM加装CPU,就是创建Thread实例,要启动额外CPU就是调用Thread实例的start()方法,额外CPU执行流程的进入点,可以定义在Runnale接口的run()方法中。
操作Runnable接口的好处就是较有弹性,你的类还有机会继承其他类。若继承了Thread,那该类就是一种Thread,通常是为了直接利用Thread中定义的一些方法,才会继承Thread来操作。
关于ThreadGroup
1.获取目前线程所属线程群组名:Thread.currentThread().getThreadGroup().getName()
2.ThreadGroup的某些方法,可以对群组中所有线程产生作用,interrupt()方法可以中断群组中所有线程,setMaxPriority()方法可以设定群组中所有线程最大优先权。
activeCount()方法获取群组的线程数量 。
enumerate()方法要传入Thread数组,这会将线程对象设定至每个数组索引。
uncaughtException()方法第一个参数可取得发生异常的线程实例,第二个参数可取得异常对象。
3.未捕捉异常会由线程实例setUncaughtExceptionHandler()设定的Thread.UncaughtExceptionHandler实例处理之后是线程ThreadGroup,然后是默认的Thread.UncaughtExceptionHandler。
教材学习中的问题和解决过程
p325页的代码运行结果跟舍友不一样。跟舍友讨论后发现是因为程序中设置了兔子随机睡觉,如果兔子不睡觉就将 hareStep 递增2,表示兔子走两步,只要兔子或乌龟其中一个走完10步就离开循环,根据兔子睡觉的随机性,结果不同
本周代码托管截图
其他(感悟、思考等,可选)
这周因为有四个实验,需要写很多实验报告,而java又有两章需要进行学习,所以学习时间真的很少,java这种自学模式需要我们很大的自制力,能够做到的话确实能够学到许多有用的知识,我还需努力。
学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| -------- | :----------------:|:----------------:|:---------------: |:-----:|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第六周 | 200/1030 | 1/11 | 20/20 | |
转载于:https://www.cnblogs.com/20145237fhn/p/5375313.html
20145237第六周学习总结相关推荐
- 2018-2019-1 20165214 《信息安全系统设计基础》第六周学习总结
20165214 2018-2019-1 <信息安全系统设计基础>第六周学习总结 教材学习内容总结 1.输入操作是从I/O设备复制数据到主存,而输出操作是从主存复制数据到I/O设备 2.U ...
- 20162303 2016-2017-2 《程序设计与数据结构》第六周学习总结
20162303 2016-2017-2 <程序设计与数据结构>第六周学习总结 教材学习内容总结 通过继承来创建类,比从零开始编写代码来的更快.更容易也更经济. 继承在父类与子类之间建立了 ...
- # 20155337 2016-2017-2 《Java程序设计》第六周学习总结
20155337 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 •串流(Stream): 数据有来源及目的地,衔接两者的是串流对象.如果要将数据从来源取出, ...
- 20155303 2016-2017-2 《Java程序设计》第六周学习总结
20155303 2016-2017-2 <Java程序设计>第六周学习总结 课堂笔记 高效学习法推荐 看视频学习(2h)→ 以代码为中心看课本,思考运行结果并验证(3h)→ 课后作业验证 ...
- 20165331 第六周学习总结
20165331 第六周学习总结 代码托管 转载于:https://www.cnblogs.com/violence/p/8747482.html
- 20172304 《程序设计与数据结构》第六周学习总结
20172304 <程序设计与数据结构>第六周学习总结 教材学习内容总结 本周主要学习的是树的内容,树由结点和边组成,位于树中较低层的结点是上一层结点的孩子.一个结点只有一个双亲,统一双亲 ...
- 达拉草201771010105《面向对象程序设计(java)》第十六周学习总结
达拉草201771010105<面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识 1.程序与进程的概念: (1)程序是一段静态的代码,它是应用程序执行的蓝 本. (2)进 ...
- Linux第六周学习总结——进程额管理和进程的创建
Linux第六周学习总结--进程额管理和进程的创建 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/cour ...
- 20165234 《Java程序设计》第六周学习总结
第六周学习总结 教材学习内容总结 第八章 常用实用类 String类 Java专门提供了用来处理字符序列的 String 类.String类在java.lang包中,由于 java.lang 包中的类 ...
最新文章
- android RSA加密
- union 和 struct 的区别与联系
- ASP.NET Core中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)
- HTTP协议和HTTPS协议
- PCB设计之3W规则和20H原则
- 【数学建模】MATLAB应用实战系列(138)-2021年MathorCup高校数学建模挑战赛A题思路解析(附代码)
- 偏微分方程数值解程序设计与实现——数学基础
- 搜狗批量提交软件-批量提交网站链接
- 【杂烩】Tesla M40 训练机组装与散热改造
- 运用“孤独九剑”解决项目实际问题(三)
- excel如何显示多个独立窗口
- 【小程序】组件形式 引入第三方图标iconfont
- 什么是Mixin?带你了解Vue中的Mixin混入
- Java毕业设计-在线点餐系统
- 缓冲技术之三:Linux下I/O操作buffer缓冲块使用流程
- Mac 修改maven 配置
- GameObject在SetActive(false)隐藏后,其下脚本仍会运行
- 简约响应式导航主题VIK WordPress模板
- 高性能网络编程总结及《TCP/IP Sockets编程(C语言实现) (第2版)》 代码下载(链接以及文件打包)
- HQChart使用教程86-技术指标OX图
热门文章
- RFQ(request for quotation)
- 公司行为(Corporate Actions)
- ServiceMix中文教程
- Oracle中类似于isql或osql的命令行工具
- oracle cusor 定义
- EasyNVR摄像机网页无插件直播方案H5前端构建之:关于接口调用常见的一些问题(401 Unauthorized)...
- nth-of-type(n)
- 编程学习笔记(第一篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(1)...
- 声明属性Hibernate的Annotation注解
- Oracle数据库与Access互导实例