20175212童皓桢 《Java程序设计》第十周学习总结
学号 2016-2017-2 《Java程序设计》第X周学习总结
教材学习内容总结
一、Java中的线程的状态
建的线程在它的一个完整的生命周期中通常要经历如下的四种状态:
1.新建: 当一个Thread
类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。
2.运行 :线程必须调用start()
方法(从父类继承的方法)通知JVM,这样JVM就会知道又有一个新一个线程排队等候切换了。一旦轮到它来享用CPU资源时,此线程的就可以脱离创建它的主线程独立开始自己的生命周期了。
3.中断:有4种原因的中断:
JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。
线程使用CPU资源期间,执行了sleep(int millsecond)
方法,使当前线程进入休眠状。
线程使用CPU资源期间,执行了wait()
方法。
线程使用CPU资源期间,执行某个操作进入阻塞状态。
4.死亡 :处于死亡状态的线程不具有继续运行的能力。线程释放了实体
二、 Thread类与线程的创建
使用Thread创建线程通常使用的构造方法是:
Thread(Runnable target)
在创建线程对象时必须向构造方法的参数传递一个实现Runnable接口类的实例,该实例对象称作所创线程的目标对象,当线程调用start()
方法后,一旦轮到它来享用CPU资源,目标对象就会自动调用接口中的run()
方法(接口回调)。
三、线程常用方法
1.start()
: 线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。
2.run()
: Thread类的run()
方法与Runnable
接口中的run()
方法的功能和作用相同,都用来定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程序不得引用的方法。
3.sleep(int millsecond)
: 优先级高的线程可以在它的run()
方法中调用sleep
方法来使自己放弃CPU资源,休眠一段时间。
4.isAlive()
: 线程处于“新建”状态时,线程调用isAlive()
方法返回false。在线程的run()
方法结束之前,即没有进入死亡状态之前,线程调用isAlive()
方法返回true。
5.currentThread()
:该方法是Thread类中的类方法,可以用类名调用,该方法返回当前正在使用CPU资源的线程。
6.interrupt()
:一个占有CPU资源的线程可以让休眠的线程调用
四、 线程同步
在处理多线程问题时,我们必须注意这样一个问题:当两个或多个线程同时访问同一个变量,并且一个线程需要修改这个变量。我们应对这样的问题作出处理。
在处理线程同步时,要做的第一件事就是要把修改数据的方法用关键字synchronized
来修饰。
所谓线程同步就是若干个线程都需要使用一个synchronized
修饰的方法。
五、 线程联合
一个线程A在占有CPU资源期间,可以让其它线程调用join()
和本线程联合,如:
B.join();
教材学习中的问题和解决过程
教材学习有问题先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,如果别人没有提出相同问题,可以编辑文档添加,然后把自己提出的问题复制到下面:
- 问题1:实作
Runnable
于run()
中定义额外流程好?还是继承Thread
于run()
中定义额外流程好? - 问题1解决方案:实作
Runnable
接口的好处就是较有弹性,你的类别还有机会继承其它类别
若继承了Thread
,那该类别就是一种Thread
,通常是为了直接利用Thread
中定义的一些方法,才会继承Thread
来实作
如果主线程中启动了额外线程,预设会等待被启动的所有线程都执行完run()
方法才中止JVM。
如果一个Thread
被标示为Daemon线程,在所有的非Daemon
线程都结束时,JVM自动就会终止。
代码调试中的问题和解决过程
无
代码托管
上周考试错题总结
- 下列关于HashMap泛型类常用方法的介绍,正确的是
A .public boolean isEmpty()如果此映射不包含键-值映射关系,则返回 true。
B .public V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则抛出异常。
C .public V put(K key, V value) 在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则以先定义的值为准。
D .public Object clone()返回此 HashMap 实例的浅表副本:并不复制键和值本身。
解析:查询API。B项:如果此映射不包含该键的映射关系,则返回null。C项:如果该映射以前包含了一个该键的映射关系,则旧值被替换。
结对及互评
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
- 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
- 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
参考示例
点评过的同学博客和代码
- 本周结对学习情况
- 结对同学学号1
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
上周博客互评情况(只要链接,具体点评放相应博客下)
- 学号1
- 学号2
- 学号3
- 学号4
- ...
其他(感悟、思考等,可选)
xxx
xxx
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 6/6 | 1/1 | 20/20 | |
第二周 | 245/251 | 1/2 | 18/38 | |
第三周 | 633/884 | 1/3 | 22/60 | |
第四周 | 305/1189 | 1/4 | 30/90 | |
第五周 | 410/1599 | 3/7 | 30/120 | |
第六周 | 1135/2734 | 3/10 | 30/150 | |
第七周 | 781/3515 | 3/13 | 30/180 | |
第八周 | 710/4225 | 3/16 | 30/210 | |
第九周 | 775/5000 | 2/18 | 30/240 | |
第十周 | 933/5933 | 1/19 | 30/270 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:XX小时
实际学习时间:XX小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
Java学习笔记(第8版)
- 《Java学习笔记(第8版)》学习指导
...
转载于:https://www.cnblogs.com/thz666/p/10815420.html
20175212童皓桢 《Java程序设计》第十周学习总结相关推荐
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- 20175212童皓桢 《Java程序设计》第六周学习总结
20175212童皓桢 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,包含内部类的类称为 ...
- 学号 20175212童皓桢 《Java程序设计》第8周学习总结
学号 20175212童皓桢 <Java程序设计>第8周学习总结 教材学习内容总结 泛型 class People<E> 其中People是泛型类的名称,E是其中的泛型,也就是 ...
- 2019-2020-2 20175212童皓桢《网络对抗技术》 Exp9 Web安全基础
2019-2020-2 20175212童皓桢<网络对抗技术> Exp9 Web安全基础 目录 1. 实验目标 2. 实验内容 2.1 SQL注入攻击 2.1.1 命令注入(Command ...
- 20175212童皓桢 实验五 网络编程与安全
20175212童皓桢 实验五 网络编程与安全 实验内容 结对编程,完成网络编程与安全相关内容 实验步骤 任务一 任务一要求: 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...
- 20175212童皓桢 实验三敏捷开发与XP实践实验报告
20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...
- 2019-2020-2 20175212童皓桢《网络对抗技术》Exp5 信息搜集与漏洞扫描
2019-2020-2 20175212童皓桢<网络对抗技术> Exp5 信息搜集与漏洞扫描 目录 1. 实验目标 2. 实验内容 2.1 各种搜索技巧的应用 2.2 DNS IP注册信息 ...
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...
- 20155229 2016-2007-2 《Java程序设计》第一周学习总结
20155229 2016-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 1~18章的提问: 第一章:怎样撰写Java才不会沦于死背API文件.使用"复制. ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
最新文章
- 状态压缩DP AcWing算法提高课 (详解)
- 牛气!GitHub 标星 119K+!这些神器仅需一行代码即可下载全网视频!
- IOC容器(底层原理解读)
- svm算法 java实现_SVM算法实现(一)
- 美国国家公路交通安全管理局对特斯拉Autopilot系统展开正式调查
- VS2010中水晶报表安装应用及实例
- 通过I2C总线向EEPROM中写入数据,记录开机次数
- java重载函数_JAVA函数的重载和重写
- VirtualLab基础实验教程-6.闪耀光栅
- 微信小程序毕业设计 驾校考试小程序毕设开题报告
- 投资速度对天使投资人很重要——九合创投王啸
- CollabNet Subversion Edge 版本库访问规则 svn
- win10更改user用户名(win10更改user用户名文件夹已在另一个文件中已打开)
- 上 k8s 生产环境的一些准备!
- LiveMe x TiDB丨单表数据量 39 亿条,简化架构新体验
- a 标签发送put请求_HTTP PUT请求该如何传输请求参数呢?
- stm32开发3D打印机(三)——ADC热敏电阻测温、PWM控制(已完成)
- java 数学测试_Java实现小学数学练习
- 我们要做杨百万,不做杨白劳
- Gradle构建项目深入浅出
热门文章
- 从头到尾理解假设检验
- android dialog设置背景图片,如何为Dialog设置背景图片?
- 台式计算机怎样能搜无线连接,电脑如何连无线网_台式电脑怎么连接wifi步骤-win7之家...
- Windows下vscode实现pretty-print
- 【中英双语】C 语言的历史
- EC20 centos7 调试_CentOS 7实现离线下载
- 微信小程序的前世今生
- java ImageIO处理
- error C2440 无法转换到 AFX_PMSG mfc自定义信号及实现 PostMessage FindWindow
- 计算机二级题百度云,计算机二级office题库