20165203《Java程序设计》第八周学习总结
20165203《Java程序设计》第八周学习总结
教材学习内容总结
第12章
- 进程与线程
- 进程的完成过程:代码加载、执行至执行完毕
- 线程:一个进程由多个线程组成。
- 线程的完成过程:自身的产生、存在和消亡
- 关系:没有进程就不会有线程
- 线程是运行在进程中的小线程。
- 线程
- 多线程:几个执行体共同执行程序的过程。
- 注意:计算机在任何给定的时刻只能执行那些线程中的一个。
- 建立多线程机制:Java虚拟机快速地把控制从一个线程切换到另一个线程,这些线程被轮流执行,每个线程都有机会使用CPU资源。
- 主线程:JVM加载代码时,发现main方法之后启动的线程
- 线程的状态:
新建
运行:使用start()
方法
中断
死亡
- 线程的状态:
- 线程的创建
两种方式:
- 使用
Thread
类子类创建:需要重写run()
方法。 - 使用
Thread
类
构造方法:Thread(Runable target)
需要创建一个Runnable
接口类的事例,并在该接口中重写run
方法。
- 目标对象与线程的关系:完全解耦和目标对象组合线程
- 线程中的常用方法:
start()
:注意使用start()
方法后不必再让线程调用start()
方法。run()
:Thread
子类中重写run()
或在Runnable接口
中编写run()
sleep(int millsecond)
:使进程休眠。
注意:参数millsecond是以毫秒为单位的休眠时间
必须在try-catch
语句块中调用sleep方法
4.isAlive()
:线程没有进入死亡状态,调用isAlive()
方法返回true
线程进入死亡状态后,调用isAlive()
方法返回false
5.currentThread()
:返回正在使用CPU线程的线程。
6.interrupt()
:解除线程的休眠状态。
- 线程同步: 程序中的若干个线程都需要使用一个方法,而这个方法用
synchronized
给予了修饰。 - 线程同步机制:线程A使用
synchronized
方法时,其他线程想使用这个synchronized
方法必须等待,直到线程A使用完该synchronized
方法。 协调同步的线程:
1.wait()
:在同步方法中使用,使本线程等待,暂时让出CPU的使用权。
2.notifyAll()
:通知所有由于使用这个同步方法而处于等待的线程结束等待,曾中断的线程就会从刚才的中断处继续执行这个同步方法。
3.notify()
:通知处于等待中的线程的某一个结束等待。
++必须在同步方法中使用这三种方法++线程联合
join()
:其他线程调用该方法,可以和正在使用CPU资源的线程联合。- GUI线程
- 计时器线程:使用
Time类
守护线程:使用
void setDaemon(boolean on)
方法
教材学习中的问题和解决过程
Q1:当学习教材时,前面的知识有所遗忘,不太了解JVM的具体含义?
A1:经过查阅教材,并上网查找之后,得到了比较全面的答案。
JVM其实是Java虚拟机的缩写,是Java程序实现其++平台无关性++的关键,正是因为的Java的平台无关性使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Q2:当学习到如图所示时,对程序中的currentThread()
方法提出了疑问。
A2:其实当我学习到后面,教材中对currentThread()
方法做了解释,在这里我就说一下我自己打的理解,currentThread()
方法是Thread
类中的方法,用于返回当前正在使用CPU资源的线程,和getName()
一起用。
代码调试中的问题和解决过程
Q1:在运行程序Example12_9.java时,运行结果如图所示,与教材实例中给出的结果不符。
A1:自己仔细阅读教材,发现教材中给catMaker
线程所赋名字有错误,如图所示。
代码托管
上周考试错题总结
Q1:接口RowSet继承了接口__,可以调用RowSet中的方法__来填充其数据区。
①Statement ②ResultSet ③update ④populate
A . ①③
B . ①④
C . ②③
D . ②④
A1:正解:C
解析:与ResultSet相比较,
(1)RowSet扩展了ResultSet接口,因此可以像使用ResultSet一样使用RowSet。
(2)RowSet扩展了ResultSet接口,因此功能比ResultSet更多、更丰富。
(3)默认情况下,所有 RowSet 对象都是可滚动的和可更新的。而ResultSet是只能向前滚动和只读的。
(4)RowSet可以是非链接的,而ResultSet是连接的。因此利用CacheRowSet接口可以离线操作数据。
(5)RowSet接口添加了对 JavaBeans 组件模型的 JDBC API 支持。rowset 可用作可视化Bean开发环境中的 JavaBeans 组件。
(6)RowSet采用了新的连接数据库的方法。
update常用于更新数据。
其他(感悟、思考等,可选)
本周的Java学习主要学习了线程,仿佛开启了新时代的大门,自我感觉线程非常有意思,自己正在尝 试用线程编写一些有意思的程序。另外,自己通过本周的学习也发现了前面的知识有些遗忘,要抓紧时间查漏补缺了。
学习进度条
~ | 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 48/48 | 1/1 | 20/20 | |
第二周 | 390/438 | 2/3 | 18/38 | |
第三周 | 886/1304 | 1/4 | 18/56 | |
第四周 | 1105/2409 | 1/5 | 30/86 | |
第五周 | 1229/3196 | 1/6 | 20/106 | |
第六周 | 1147/4343 | 2/8 | 25/131 | |
第七周 | 1862/3668 | 1/9 | 20/151 | |
第八周 | 955/5298 | 1/10 | 20/171 |
20165203《Java程序设计》第八周学习总结的更多相关文章
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 20165203《Java程序设计》第九周学习总结
20165203<Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用 ...
- 20165203 2017-2018-2 《Java程序设计》第一周学习总结
20165203 2017-2018-2<Java程序设计>第一周学习总结 教材学习内容总结 (一)Java的地位 Java是面向对象编程,并涉及网络.多线程等重要的基础知识,是一门很好的 ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- 3.CentOS的一些小笔记
1.一般来说,主文件夹都在/home下面,比如登陆的账户为LyndonMario,则我的主文件夹为 /home/LyndonMario. 2.ctrl+space可以调出输入法. 3.CentOS中的 ...
- HDU 6231
K-th Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
- docker的优势
基于微服务的架构已经成为一种流行趋势.而Docker则给微服务的蓬勃发展注入了更强的活力. docker的吸引能力主要来自两方面:快速和可移植. 1.快速 普通的虚拟机每次都需要启动一个完整的操作系统 ...
- python---函数补充(变量传递),语句执行顺序(入栈顺序)
一:函数补充 默认作为函数参数的数据,是浅拷贝传递.不是和C等语言一样,产生一个临时变量. class T: def __init__(self,num): print(id(num)) self.n ...
- 互斥量、条件变量与pthread_cond_wait()函数的使用,详解(一)
1. 首先pthread_cond_wait 的定义是这样的 The pthread_cond_wait() and pthread_cond_timedwait() functions are us ...
- SVN不能提交代码
Error: Some resources were not reverted. Attempted to lock an already-locked dir svn: Working copy ' ...
- Maximal Rectangle&Largest Rectangle in Histogram
这两天在做leetcode的题目,最大矩形的题目以前遇到很多次了,一直都是用最笨的方法,扫描每个柱子,变换宽度,计算矩形面积,一直都以为就这样O(n2)的方法了,没有想到居然还有研究出了O(n)的算法 ...
- [整理]LumiSoft.Net 开源组件
http://www.lumisoft.ee/lsWWW/download/downloads/Net/info.txt SVN: https://svn.lumisoft.ee:8443/svn/L ...
- java反射三种获得类类型的方法
public class Test { public static void main(String[] args) { Test t=new Test();//所有的类都是Class类的实例(类类型 ...
- 基本控件文档-UIView属性
CHENYILONG Blog 基本控件文档-UIView属性 Fullscreen UIView属性技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http ...