20165215 2017-2018-2 《Java程序设计》第八周学习总结
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是出现如下错误
- 问题1解决方法:添加
encoding
参数:javac -encoding gbk Example12_1.java,然后运行成功
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1
- 理解情况:Xammp是一个功能强大的建站集成软件包,可以在其中创建数据库
- 错题2
- 理解情况:数据操作语言是指对表中数据的查询、插入、删除和修改
- 错题3
- 理解情况: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 |