学号 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:实作Runnablerun()中定义额外流程好?还是继承Threadrun()中定义额外流程好?
  • 问题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项:如果该映射以前包含了一个该键的映射关系,则旧值被替换。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至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程序设计》第十周学习总结相关推荐

  1. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  2. 20175212童皓桢 《Java程序设计》第六周学习总结

    20175212童皓桢 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,包含内部类的类称为 ...

  3. 学号 20175212童皓桢 《Java程序设计》第8周学习总结

    学号 20175212童皓桢 <Java程序设计>第8周学习总结 教材学习内容总结 泛型 class People<E> 其中People是泛型类的名称,E是其中的泛型,也就是 ...

  4. 2019-2020-2 20175212童皓桢《网络对抗技术》 Exp9 Web安全基础

    2019-2020-2 20175212童皓桢<网络对抗技术> Exp9 Web安全基础 目录 1. 实验目标 2. 实验内容 2.1 SQL注入攻击 2.1.1 命令注入(Command ...

  5. 20175212童皓桢 实验五 网络编程与安全

    20175212童皓桢 实验五 网络编程与安全 实验内容 结对编程,完成网络编程与安全相关内容 实验步骤 任务一 任务一要求: 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...

  6. 20175212童皓桢 实验三敏捷开发与XP实践实验报告

    20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...

  7. 2019-2020-2 20175212童皓桢《网络对抗技术》Exp5 信息搜集与漏洞扫描

    2019-2020-2 20175212童皓桢<网络对抗技术> Exp5 信息搜集与漏洞扫描 目录 1. 实验目标 2. 实验内容 2.1 各种搜索技巧的应用 2.2 DNS IP注册信息 ...

  8. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  9. 20155229 2016-2007-2 《Java程序设计》第一周学习总结

    20155229 2016-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 1~18章的提问: 第一章:怎样撰写Java才不会沦于死背API文件.使用"复制. ...

  10. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

最新文章

  1. 状态压缩DP AcWing算法提高课 (详解)
  2. 牛气!GitHub 标星 119K+!这些神器仅需一行代码即可下载全网视频!
  3. IOC容器(底层原理解读)
  4. svm算法 java实现_SVM算法实现(一)
  5. 美国国家公路交通安全管理局对特斯拉Autopilot系统展开正式调查
  6. VS2010中水晶报表安装应用及实例
  7. 通过I2C总线向EEPROM中写入数据,记录开机次数
  8. java重载函数_JAVA函数的重载和重写
  9. VirtualLab基础实验教程-6.闪耀光栅
  10. 微信小程序毕业设计 驾校考试小程序毕设开题报告
  11. 投资速度对天使投资人很重要——九合创投王啸
  12. CollabNet Subversion Edge 版本库访问规则 svn
  13. win10更改user用户名(win10更改user用户名文件夹已在另一个文件中已打开)
  14. 上 k8s 生产环境的一些准备!
  15. LiveMe x TiDB丨单表数据量 39 亿条,简化架构新体验
  16. a 标签发送put请求_HTTP PUT请求该如何传输请求参数呢?
  17. stm32开发3D打印机(三)——ADC热敏电阻测温、PWM控制(已完成)
  18. java 数学测试_Java实现小学数学练习
  19. 我们要做杨百万,不做杨白劳
  20. Gradle构建项目深入浅出

热门文章

  1. 从头到尾理解假设检验
  2. android dialog设置背景图片,如何为Dialog设置背景图片?
  3. 台式计算机怎样能搜无线连接,电脑如何连无线网_台式电脑怎么连接wifi步骤-win7之家...
  4. Windows下vscode实现pretty-print
  5. 【中英双语】C 语言的历史
  6. EC20 centos7 调试_CentOS 7实现离线下载
  7. 微信小程序的前世今生
  8. java ImageIO处理
  9. error C2440 无法转换到 AFX_PMSG mfc自定义信号及实现 PostMessage FindWindow
  10. 计算机二级题百度云,计算机二级office题库