20165233 2017-2018-2 《Java程序设计》第八周学习总结

教材学习内容总结

  • 基础:Java中的线程,Thread类与线程的创建

    - 线程是比进程更小的单位。
    - JVM(Java虚拟机)中的线程调度器负责管理线程,在采用时间片的系统中,每个线程都会有机会获得CPU的使用权。
    - 线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有这个线程,此线程必须调用`start()`方法通知JVM。
  • 重点(难点):线程同步,协调同步的线程

    - 线程同步是指几个线程都需要调用同一个同步方法。
    - 一个线程在使用同步方法时,可能根据问题的需要,必须使用`wait()`方法暂时让出CPU的使用权。
    - 其他线程在使用这个同步方法时如果不需要等待,那么它用完这个同步方法的同时,应当执行`notifyAll()`方法通知所有由于使用这个同步方法而处于等待的线程结束等待。
  • 了解:线程的常用方法,线程联合,GUI线程

  • 实用:计数器线程

教材学习中的问题和解决过程

  • 问题1:能否在一个Java应用程序出现2个以上的无限循环呢?
  • 问题1解决方案:如果不使用多线程技术,是无法解决上述问题的。因为第1个代码在while语句里无限循环,那么第2个while语句中的代码是永远没有机会执行的。如果能在主线程中创建两个线程,那么这两个while语句将会被轮流执行。
  • 问题2:为什么程序必须在子类中重写父类的run()方法呢?
  • 问题2解决方案:其原因是Thread类中的run()方法没有具体内容,程序要在Thread类的子类中重写run()方法来覆盖父类的run()方法。
  • 问题3:时间片是什么?
  • 问题3解决方案:时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。

代码调试中的问题和解决过程

  • 问题1:教材362页的Example12_1.java中,主线程执行到第1次循环,输出了
主人1

,主线程为什么没有将这个for循环语句执行完呢?

  • 问题1解决方案:由于主线程在使用CPU资源时,已经执行了
speakElephant.start();
speakCar.start();

此时,JVM已经知道有3个线程了。因而,在main线程使用CPU资源执行到for语句的第1次循环之后,JVM就将CPU资源切换给speakCar线程了。

  • 问题2:教材366页Example12_2.java中,为什么将
speakCar.start();

去掉,或者改为

carTarget.run();

时,JVM认为程序中只有两个线程呢?

  • 问题2解决方案:start()方法时新建一个线程的方法,若去掉,则视为没有此线程;在carTarget.run();运行过程中可能被中断,变成主线程的代码了,JVM只在主线程与Elephant线程中切换。

代码托管

上周考试错题总结

  • 错题1:接口RowSet继承了接口ResultSet,可以调用RowSet中的方法update来填充其数据区。

原因:可以调用RowSet中的方法update来填充其数据区,把update填成了populate。对于RowSet中的方法作用掌握得不清楚。

理解情况:已了解该方法。

  • 错题2:executeUpdate返回的类型是int,代表的含义是受影响的记录。true

原因:对于executeUpdate不清楚。

理解情况:已了解该方法。

  • 错题3:下列属于数据操作语言的是:A.insert和B.update

原因:对于数据操作语言了解不清楚。将select也选做了数据操作语言。

理解情况:已掌握数据操作语言的基本内容。

其他(感悟、思考等,可选)

本周学习内容中12章的内容,对于线程的理解更加深入了。在学习前,对于线程、进程的概念十分混淆,现在也更加明晰了。在学习教材内容的过程中,线程更接近电脑一些应用程序之类的运行,就不像前几章十分直白的程序语句,只是针对于一个解决课本题目的程序,本章更利于解决实际的程序运行的问题,更加抽象也更加实用。

20165233 2017-2018-2 《Java程序设计》第八周学习总结的更多相关文章

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

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

  2. 20165233 2017-2018-2 《Java程序设计》第九周学习总结

    20165233 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 基础 - URL类:java.net包中的URL类是对统一资源定位符的抽象,使用URL创建对 ...

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

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

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

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

  5. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  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. MyEclipse快捷键及经验总结 绝对的有用 太给力了

    Ctrl+Shift+L    显示所有快捷键  Ctrl+K      参照选中的词(Word)快速定位到下一个  Ctrl+Shift+K    参照选中的词(Word)快速定位到上一个    C ...

  2. (2)hashlib模块(加密算法模块)

    hash算法模块内有很多种,如md5.sha1等,只是加密的程度不一样 hash是一种算法 该算法接收传入的文本内容,经过hash运算得到一串hash值 hash值具备三个特点: 1. 如果传入的内容 ...

  3. vue components

    https://github.com/vuejs/awesome-vue#components--libraries

  4. 感悟:Java新手一点想法

    在2年前写的博客,写的那么幼稚,工作了,工作经验多重要啊,有3年的开发经验,工资8000-12000 没接触Java框架之前,以为这些东西多神秘,多了不起,多高大上,其实也就那样 最重要的搞懂交互的流 ...

  5. 在 ASP.NET 网页中不经过回发而以编程方式实现客户端回调

    在 ASP.NET 网页的默认模型中,用户会与页交互,单击按钮或执行导致回发的一些其他操作.此时将重新创建页及其控件,并在服务器上运行页代码,且新版本的页被呈现到浏览器.但是,在有些情况下,需要从客户 ...

  6. JVM 之:Class 类文件结构

    类文件结构 Class 文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部都是 ...

  7. hybrid app 知识点

    WebView能加载显示网页,可以将其视为一个浏览器. Android系统中,叫做 WebView ios系统中,新版是 WKWebView,旧版是 UIWebView Native App 和 We ...

  8. WIN7\win10下使用批处理配置JAVA环境变量

    我找了很多环境变量批处理的教程,都不太满意,因此综合修改了下,拼凑出了这么一个版本. 下面这个是我主要参考的博客,大部分的代码都是来自这里: http://blog.csdn.net/lpy36543 ...

  9. import和export语法报错

    “最近在学习ES6”,但是在chrome中新建了js通过ES6语法(import,export)无法引入外部JS,报错: Uncaught SyntaxError:Unexpected token { ...

  10. 【python】列表&&元组&&字典

    列表:用“[]”包裹,可对值增删改. 列表遍历: 方法一: alist=["a","b","c","d","e ...