20165203《Java程序设计》第八周学习总结

教材学习内容总结

第12章

  • 进程与线程
    • 进程的完成过程:代码加载、执行至执行完毕
    • 线程:一个进程由多个线程组成。
    • 线程的完成过程:自身的产生、存在和消亡
    • 关系:没有进程就不会有线程
    • 线程是运行在进程中的小线程。
  • 线程
    • 多线程:几个执行体共同执行程序的过程。
    • 注意:计算机在任何给定的时刻只能执行那些线程中的一个。
    • 建立多线程机制:Java虚拟机快速地把控制从一个线程切换到另一个线程,这些线程被轮流执行,每个线程都有机会使用CPU资源。
    • 主线程:JVM加载代码时,发现main方法之后启动的线程
    • 线程的状态:
      新建
      运行:使用start()方法
      中断
      死亡
  • 线程的创建
    两种方式:
  1. 使用Thread类子类创建:需要重写run()方法。
  2. 使用Thread类
    构造方法:Thread(Runable target)
    需要创建一个Runnable接口类的事例,并在该接口中重写run方法。
  • 目标对象与线程的关系:完全解耦和目标对象组合线程
  • 线程中的常用方法:
  1. start():注意使用start()方法后不必再让线程调用start()方法。
  2. run():Thread子类中重写run()或在Runnable接口中编写run()
  3. 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程序设计》第八周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第八周学习总结

    1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...

  2. 20165203《Java程序设计》第九周学习总结

    20165203<Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用 ...

  3. 20165203 2017-2018-2 《Java程序设计》第一周学习总结

    20165203 2017-2018-2<Java程序设计>第一周学习总结 教材学习内容总结 (一)Java的地位 Java是面向对象编程,并涉及网络.多线程等重要的基础知识,是一门很好的 ...

  4. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  5. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  10. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

随机推荐

  1. OpenCV入门指南----人脸检测

    本篇介绍图像处理与模式识别中最热门的一个领域——人脸检测(人脸识别).人脸检测可以说是学术界的宠儿,在不少EI,SCI高级别论文都能看到它的身影.甚至很多高校学生的毕业设计都会涉及到人脸检测.当然人脸 ...

  2. 学些goosman-lei的博客感触

    在进行程序员职业规划标题搜索的时候,csdn推荐了<专访雷果国:从1.5K到18K 一个程序员的5年成长之路>感触颇深链接:https://www.csdn.net/article/201 ...

  3. Django paginator and Form

    django  提供的分页器 django 官方链接: https://docs.djangoproject.com/en/1.11/topics/pagination/ django提供了一些类来帮 ...

  4. P1558 色板游戏

    P1558 色板游戏 题目背景 阿宝上学了,今天老师拿来了一块很长的涂色板. 题目描述 色板长度为L,L是一个正整数,所以我们可以均匀地将它划分成L块1厘米长的小方格.并从左到右标记为1, 2, .. ...

  5. html基础知识汇总(二)之Emmet语法

    div.imageBox+div.infoBox+input[type="button" class="starBtn"]*3 <div class=&q ...

  6. javascript精雕细琢(四):认亲大戏——通过console.log彻底搞清this

    目录 引言 代码在前 1.function下的this 2.箭头函数下的this 结语 引言        JS中的this指向一直是个老生常谈,但是新手又容易晕的地方.我在网上浏览了很多帖子,但是发 ...

  7. Coffeescript的安装与编译

    安装 npm install -g coffee-script 在cmd中输入coffee可以进入coffeescript的命令行模式(REPL),然而到我写完这篇博文为止,我觉得这并没有什么卵用 C ...

  8. Github遇到Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.

    警告:为IP地址192.30.252.128的主机(RSA连接的)持久添加到hosts文件中,那就来添加吧! 解决办法: vim /etc/hosts 添加一行:52.74.223.119 githu ...

  9. cmmusic:小巧而实用的mplayer音乐播放前端

    Author: Jiqing (jiqingwu@gmail.com) home: http://hi.baidu.com/jiqing0925 create: 2011-03-10 update: ...

  10. 【AtCoder Grand Contest 007E】Shik and Travel [Dfs][二分答案]

    Shik and Travel Time Limit: 50 Sec  Memory Limit: 512 MB Description 给定一棵n个点的树,保证一个点出度为2/0. 遍历一遍,要求每 ...