20165235 祁瑛 2018-4 《Java程序设计》第八周学习总结

20165235 祁瑛 2018-4 《Java程序设计》第八周学习总结

教材学习内容总结

操作系统与进程
  • 程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载,执行至执行完毕的一个完整过程,这个过程也是进程本身从产生,发展至消亡的过程。
进程与线程
  • 线程间可以共享进程中的某些内存单元。
java的多线机制
  • java虚拟机快速的把控制从一个线程切换到另一个线程,这些线程将被轮流执行,使得每个线程都有机会使用CPU资源。
主线程
  • main 线程主要负责执行main方法。在main方法的执行中在创建的线程,就被称作程序中的其他线程。
  • JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源。
线程的状态和生命周期
  • java语言使用Thread类及其子类的对象来表示线程。
    - start()方法通知JVM,JVM就会知道有一个新的线程排队了。
  • sleep(int millsecond)方法使当前线程进入休眠状态。
    -run ()方法规定了该线程的具体使命。
Thread类
  • 创建线程的一个途径是用Thread类直接创建线程对象。通常使用其构造方法。
  • 使用Runnable接口比使用Thread的子类更加的灵活。
目标对象与线程对象的关系
  • 目标对象与线程对象完全解耦
  • 目标对象组合线程
线程同步
  • 若干线程都使用一个synchronized 修饰的方法。多个线程调用synchronized 修饰的方法必须遵守同步机制。
线程联合
  • 一个线程A在占用CPU的资源期间,可以让其他线程调用join()方法和本线程联合。

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

  • 问题一:在运行Example12_3的时候,每次运行的结果都不一致?

  • 解决:这个问题还没有解决,但我个人认为是用Thread类创建的猫,狗两个线程在使用CPU资源时是随机轮流交替,谁先得到资源是不确定的,所以会出现结果不一致的情况。

码云代码链接

脚本运行截图:


上周考试错题总结

  1. 属于数据操作语言的是:insert和update
  2. Statement的executeUpdate()方法会返回int值
  3. 异常情况正确的是: java.sql.SQLException:结果集已耗尽 (结果集用尽或未调用next);java.sql.SQLException: No suitable driver(URL拼写错误)
  4. 以下哪些是定义在ResultSet中用于Cursor定位的方法:
  • next()
  • beforeFirst()
  • afterLast()
  • isBeforeFirst()
  • relative(int)

感悟

  • 通过本周的学习,对线程有了一些了解,在给线程分配CPU资源时我们可以理解为不同状态之间的转换。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 31/31 1/1 20/20 git的使用
第二周 373/404 2/3 18/38 java基本数据语法
第三周 547/920 1/4 22/60 类与对象以及打包
第四周 919/1839 2/6 30/80 子类与继承,接口和面向接口编程
第五周 500/2300 3/9 20/ 100 输入输出流以及内部类
第六周 300/2600 1/10 25/125 泛型与集合框架,常用实用类
第七周 447/3047 3/13 25/150 MySQL数据库与JDBC
第八周 700/3826 3/16 25/175 java的多线程机制

参考资料

posted @ 2018-04-21 19:01  养浩  阅读(143)  评论(0编辑  收藏  举报