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

时间:2022-10-18 22:12:35

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

教材学习内容总结

  • 进程与线程
    • 进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。
    • 线程是比进程更小的执行单位
  • Java中的进程
    • 计算机在任何给定的时刻只能执行那些线程中的一个
    • Java语言使用Thread类及其子类的对象来表示线程
    • 线程创建后仅仅是占用了内存资源,必须调用start()方法通知JVM
    • 程序必须在子类中重写父类的run()方法
    • sleep(int millsecond)方法使当前线程进入休眠状态,wait()方法使当前线程进入等待状态
    • 所谓死亡状态就是线程释放了实体,即释放分配给线程对象的内存
  • Thread类与线程的创建
    • 使用Thread创建线程通常使用的构造方法是Thread(Runnable target)
    • 目标对象与线程完全解耦的情况下,目标对象需要通过获得线程的名字来确定能够是哪个线程正在占用CPU;目标对象组合线程中,目标对象可以获得线程对象的引用
  • 常用方法
    • start();
    • run(),在线程没有结束run()之前,不要再让线程调用start()方法,否则将发生IllegalThreadStateException异常
    • sleep(int millsecond)必须在try-catch语句块中调用sleep方法
    • isAlive();
    • currentThread()返回当前正在使用CPU资源的线程
    • interrupt();
  • 线程同步机制:当一个线程A使用synchronized方法时,时就必须等待,知道线程A使用完synchronized方法
  • 不可以在非同步方法中使用wait(),notify(),notifyAll()
  • A在运行期间使用Join()联合B,那么A线程立刻终端执行,一直等待B执行结束,A再重新排队等待CPU资源
  • AWT-EventQuecue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面

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

  • 问题1:编译例子1是出现如下错误

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

  • 问题1解决方法:添加encoding 参数:javac -encoding gbk Example12_1.java,然后运行成功

代码托管

(statistics.sh脚本的运行结果截图)

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

上周考试错题总结

  • 错题1

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

  • 理解情况:Xammp是一个功能强大的建站集成软件包,可以在其中创建数据库
  • 错题2

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

  • 理解情况:数据操作语言是指对表中数据的查询、插入、删除和修改
  • 错题3

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

  • 理解情况:java.sql.SQLException: Unknown column 'sid' in 'field list' 意为“字段列表”中有未知列“SID”

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 37/37 1/1 15/15
第二周 398/429 2/3 15/30
第三周 753/1167 1/4 20/50
第四周 1296/2109 2/6 20/70
第五周 1191/3323 2/8 20/90
第六周 1806/4390 2/10 15/105
第七周 1260/5145 2/12 15/120
第八周 606/5745 3/15 20/140

参考资料