20175221 《Java程序设计》第10周学习总结
20175221 《Java程序设计》第10周学习总结
教材学习内容总结
第十二章主要内容有:
- 进程与线程
- 进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程 
- 线程是比进程更小的执行单位,一个进程在执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念 
- Java中的线程
- Java内置对多线程的支持。我们的计算机在任何给定说的时刻只能执行线程中的一个,Java虚拟机只是从一个线程迅速地切换到另一个线程。
- 线程的周期:线程使用 Thread 类及其子类对象来表示线程
- Java语言使用 Thread 类及其子类的对象来表示线程,新建的线程一般要经历4个状态:新建、运行、中断、死亡
- Thread类与线程的创建
- 可以使用 Thread 类或者子类创建线程对象,注意子类必须重写run()方法,同时子类可以增加新的成员变量、方法使线程有具体的功能。
- 使用 Thread 的子类, 需要重写父类的run()方法。
- 用 Thread 创建线程通常使用 Thread(Runnable target)
- 线程的常用方法
- (1) start() 方法:启动一个线程。
- (2) run() 方法:定义该线程的动作。
- (3) sleep() 方法:使线程睡眠一段时间,单位为ms。
- (4) suspend() 方法:使线程挂起。
- (5) resume() 方法:恢复挂起的线程。
- (6) yield() 方法:把线程移到队列的尾部。
- (7) stop() 5方法:结束线程生命周期并执行清理工作。
- (8) destroy() 方法:结束线程生命周期但不做清理工作。
- 线程同步
- 如果有若干个线程需要同时使用一个方法,为了不出现混乱,可以使用 synchronized 进行修饰。这样一来,该方法只能轮流被调用,直到正在调用该方法的线程使用完该方法后,其他线程才可以调用该方法。
- 协调同步的线程
- wait() 方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。 
- notifyAll() 方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先继续”的原则。 
- notify() 方法只是通知处于等待中的线程的某一个结束等待。 
- 线程联合
- 线程A在其运行期间,如果其他线程B调用了 join() 方法和线程A联合,那么A线程会立马中断,直到B线程运行结束A线程才会重新排队。若B线程已经结束,调用 join() 方法则不会有任何效果。
- GUI线程
- (1)当Java程序包含图形用户界面 (GUI) 时,Java虚拟机在运行应用程序时会自动启动更多的线程,其中有两个重要的线程: AWT-EventQuecue 和 AWT-Windows 。
- (2)AWT-EventQuecue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面。
- (3)JVM要保证各个线程都有使用CPU资源的机会,比如,程序中发生GUI界面事件时,JVM就会将CPU资源切换给AWT-EventQuecue线程,AWT-EventQuecue线程就会来处理这个事件,比如,你单击了程序中的按钮,触发ActionEvent事件,AWT-EventQuecue线程就立刻排队等候执行处理事件的代码。
- 守护线程
- 线程默认是非守护线程,线程在运行之前必须设置自己是否为守护线程。可以调用voidsetDaemon(boolean on)来将自己设置成一个守护线程。当所有非守护线程运行结束时,守护线程一定会跟着结束。
代码调试中的问题和解决过程
- 问题1:Error:(17, 41) java: 不兼容的类型: int无法转换为java.lang.String
 
- 问题1解决方案:是前边的产品代码和后边的测试代码,参数顺序不一致导致,修改使其顺序对应即可。 
代码托管

statistics.sh脚本的运行结果截图
上周考试错题总结
学习进度条(四月份继三月份)
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 8篇 | 100小时 | |
| 第一周 | 13/13 | 4/4 | 12/12 | |
| 第二周 | 309/322 | 1/5 | 13/25 | |
| 第三周 | 614/923 | 1/6 | 15/40 | |
| 第四周 | 384/1379 | 2/8 | 12/52 | |
| 第五周 | 565/1954 | 1/9 | 12/64 | |
| 第六周 | 1080/3034 | 4/13 | 15/79 | |
| 第七周 | 671/3705 | 2/15 | 12/91 | |
| 第八周 | 597/4302 | 3/18 | 12/103 | |
| 第九周 | 1533/5238 | 4/22 | 12/115 | |
| 第十周 | 841/6043 | 4/26 | 15/130 | 
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:12 
- 实际学习时间:15 
- 改进情况:继续保持稳定前进 
(有空多看看现代软件工程 课件软件工程师能力自我评价表)
参考资料
- [ Java 2 实用教程(第5版)] 
20175221 《Java程序设计》第10周学习总结的更多相关文章
- 20175221 2018-2019-2 《Java程序设计》第一周学习总结
		20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ... 
- 2018面向对象程序设计(Java)第10周学习指导及要求
		2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4) 学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ... 
- 面向对象程序设计(JAVA) 第10周学习指导及要求
		2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4) 学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ... 
- 20145213《Java程序设计》第九周学习总结
		20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ... 
- 20145213《Java程序设计》第二周学习总结
		20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ... 
- 20145213《Java程序设计》第一周学习总结
		20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ... 
- 21045308刘昊阳 《Java程序设计》第九周学习总结
		21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ... 
- 20145218《Java程序设计》第一周学习总结
		20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ... 
- 20145236 《Java程序设计》第九周学习总结
		20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ... 
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
		20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ... 
随机推荐
- laravel5.5学习2-路由系统
			一.初识路由 路由系统是所有 PHP 框架的核心,路由承载的是 URL 到代码片段的映射,不同的框架所附带的路由系统是这个框架本质最真实的写照,一丝不挂,一览无余.Laravel 路由中文文档:htt ... 
- py3 base64加密
			import base64 #字符串编码: encodestr = base64.b64encode('abcr34r344r'.encode('utf-8')) print(str(encodest ... 
- event.target和event.currentTarget的区别----0605加深理解
			target:触发事件的元素.currentTarget:事件绑定的元素.两者在没有冒泡的情况下,是一样的值,但在用了事件委托的情况下,就不一样了,例如: <ul id="ulT&qu ... 
- 2017年0406------如何使用sessionStroage来储存参数是对象的,以及localStorage和sessionStorage的不同地方
			由于项目需要,需要向另外个页面传参数,,由于参数比较特殊,是对象,所以需要用到sessionStorage方法,下面简单的总结一下方法: (1)这个是要将对象转换成字符串,再存储到storage中, ... 
- thinkphp 静态缓存设置
			'HTML_CACHE_RULES'=> array('ActionName' => array('静态规则', '静态缓存有效期', '附加规则'),'ModuleName(小写)' = ... 
- hadoop的权限控制
			HDFS支持权限控制,但支持较弱.HDFS的设计是基于POSIX模型的,支持按用户.用户组.其他用户的读写执行控制权限.在linux命令行下,可以使用下面的命令修改文件的权限.文件所有者,文件所属组: ... 
- linux命令详解——ln
			ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ... 
- Nginx 别名访问
			#添加另一个域名,在浏览器中输入 etiantian.org,总是调到 www.etiantian.org server { listen 80; server_name w ... 
- 五、vue中export和export default的使用
			一.export的使用 比喻index.js要使用test.js中的数据,首先在test.js文件中进行导出操作 代码如下: export function list() { alert(" ... 
- 对mysql进行快照复制
			Myself> flush tables with read lock; 之后开始创建快照 [root@server0 mysql]# lvcreate -L 100M -s -n dbback ... 
 
			
		