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

教材学习内容总结

Ch12

  • 进程与线程

    • 线程是比进程更小的单位,一个进程在其执行过程中,可以产生多个线程
  • Java中的线程
    • 主线程

      每个Java应用程序都有一个缺省的主线程。当JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称为“主线程”(main线程),该线程负责执行main方法。

    • 线程的状态与生命周期

      Java语言使用Thread类及其子类的对象表示线程

      新建的线程在它的一个完整的生命周期中通常要经历如下的四种状态:

      1.新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。

      2.运行 :线程必须调用start()方法(从父类继承的方法)通知JVM,这样JVM就会知道又有一个新一个线程排队等候切换了。一旦轮到它来享用CPU资源时,此线程的就可以脱离创建它的主线程独立开始自己的生命周期了。

      3.中断:有4种原因的中断:

      JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。

      线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状。

      线程使用CPU资源期间,执行了wait()方法。

      线程使用CPU资源期间,执行某个操作进入阻塞状态。

      4.死亡 :处于死亡状态的线程不具有继续运行的能力,释放分配给线程对象的内存

  • Thread类与线程的创建
    • 在Java语言中,用Thread类或子类创建线程对象,编写子类时,需要重写run()方法。
    • 使用Thread类:Thread(Runnable target)

      Example12-3、4

  • 线程的常用方法
    • start(): 线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。
    • run(): Thread类的run()方法与Runnable接口中的run()方法的功能和作用相同,都用来定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程序不得引用的方法。
    • sleep(int millsecond): 优先级高的线程可以在它的run()方法中调用sleep方法来使自己放弃CPU资源,休眠一段时间。
    • isAlive(): 线程处于“新建”状态时,线程调用isAlive()方法返回false。在线程的run()方法结束之前,即没有进入死亡状态之前,线程调用isAlive()方法返回true。
    • currentThread():该方法是Thread类中的类方法,可以用类名调用,该方法返回当前正在使用CPU资源的线程。
    • interrupt() :一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法“唤醒”自己,即导致休眠的线程发生InterruptedException异常,从而结束休眠。
  • 线程同步
    • 若干个线程需要同时使用一个方法,需要使用synchronized进行修饰。 当一个线程使用synchronized方法时,其他线程若想使用就必须使用wait()方法等待,直到该线程使用完该方法
    • 其他线程在使用同步方法时若不需要等待,则用完方法的同时,执行notifyAll()方法通知所有处于等待状态的线程结束等待。
  • 协调同步的线程
    • wait() 方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。
    • notifyAll() 方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先继续”的原则。
    • notify() 方法只是通知处于等待中的线程的某一个结束等待。

      不可以在非同步方法中使用wait(),notify(),notifyAll()方法。

  • 线程联合
    • 一个线程A在占有CPU资源期间,可以让其它线程调用join()和本线程联合,如:
      B.join();
      称A在运行期间联合了B。
    • 如果线程A在占有CPU资源期间一旦联合B线程,那么A线程将立刻中断执行,一直等到它联合的线程B执行完毕,A线程再重新排队等待CPU资源,以便恢复执行。
    • 如果A准备联合的B线程已经结束,那么B.join()不会产生任何效果。
  • GUI线程
    • 当Java程序包含图形用户界面(GUI)时,Java虚拟机在运行应用程序会自动启动更多的线程
    • AWT-EventQuecue线程负责处理GUI事件
    • AWT-Windows线程负责将窗体或组件绘制到桌面
  • 计时器线程
    • 计时器线程

      构造方法:Timer(int a,object b),a的单位为毫秒,b是计时器的监视器

      只震铃一次:调用setReapeats(boolean b)方法,b取值false

      启动计时器:start()

      停止计时器:stop()

      重启计时器:restart()

  • 守护线程
    • 线程可以调用void setDaemon(boolean on)方法将自己设置成一个守护线程。
    • 必须在运行之前设置自己是否守护线程。

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

  • 问题1:上周的MySql一直没有装好

  • 问题1解决方案:参考娄老师的博客XMAPP安装到这一步找不到相应入口

应该从 127.0.0.1 进入后选择红框内 phpMyAdmin

代码托管

上周考试错题总结

1.接口RowSet继承了接口__,可以调用RowSet中的方法__来填充其数据区。
①Statement ②ResultSet ③update ④populate

A . ①③

B . ①④

C . ②③

D . ②④

正确答案: C

解析:populate方法只能用来写入数据

2.下列属于数据操作语言的是

A . insert

B . update

C . create

D . select

正确答案: A B

我的答案:A B D

解析:本题我不太理解为什么没有D,按照百度百科关于数据操纵语言的定义,select也应该属于操作语言呀?

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 24/24 1/4 15/15
第二周 423/423 2/6 14/29
第三周 702/1109 1/7 16/45
第四周 918/2027 2/9 16/61
第五周 1208/3235 2/11 15/76
第六周 1137/4372 2/13 14/90
第七周 549/4921 1/14 10/100
第八周 1025/5946 3/17 15/115

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

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

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

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

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

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

随机推荐

  1. SQL学习笔记之MySQL中真假“utf8” 问题

    0x00 MySQL中UTF8报错 最近我遇到了一个 bug,我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串,然后出现了一个离奇的错误: Incorre ...

  2. 前端学习笔记之Z-index详解

    CSS当中的z-index属性看起来足够简单,但是如果你真的想了解它是如何工作的话,在这简单的表面之下,又有许多值得探究的内容. 在这篇教程中,通过探究层叠上下文和一系列实际的例子,我们将会阐明z-i ...

  3. hashmap总结2

    1.  关于HashMap的一些说法: a)  HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体.HashMap的底层结构是一个数组,数组中的每一项是一条链表. b)  Hash ...

  4. vim 中查询和转换编码

    vim中查询修改文件编码格式 set fileencoding 查看现在文本的编码 :set fenc=编码 转换当前文本的编码为指定的编码 :set enc=编码 以指定的编码显示文本,但不保存到文 ...

  5. 机器学习:让我们彻底搞懂CNN【转】

    本文转载自:http://115.com/182920/T1266078.html 机器学习:让我们彻底搞懂CNN 上世纪科学家们发现了几个视觉神经特点,视神经具有局部感受眼,一整张图的识别由多个局部 ...

  6. mysql数据库无法连接(JDBC)java.net.ConnectException: Connection timed out

    数据库无法连接(JDBC) 用户名密码正确,但是一直报错:Connection timed out 后来知道了原因:我用的是BAE提供的云mysql数据库,对访问的IP有限制 ,所以在本机上无法连接. ...

  7. java类库字符串操作

    在java类库中,java给我们提供了字符串几个特别的操作,分别是String,Stringbuffer,Stringbuilder等.下面就对这几个类做一个简单的介绍.首先,我们先了解一下Strin ...

  8. 最短路径 bellman-ford

    初始化:将除源点外的所有顶点的最短距离估计值 d[v] ←+∞, d[s] ←0 迭代求解:反复对边集E中的每条边进行松弛操作,使得顶点集V中的每个顶点v的最短距离估计值逐步逼近其最短距离:(运行|v ...

  9. 微服务(一)eureka

    Eureka概述 一个简单的服务注册,服务发现架构 在CAP理论中,eureka选择了ap,作为注册中心,数据可用比数据不一致更重要 逻辑架构图 Eureka特性 1.当注册中心挂了,客户端之间依然可 ...

  10. ASP.NET.Identity 加密算法

    public static string HashPassword(string password) { if (password == null) { throw new ArgumentNullE ...