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

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

教材学习内容总结

第十二章

1、程序:一段静态的代码.进程:程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。

2、线程的状态与生命周期:新建,运行,中断,死亡:

  • (1)新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。此时它已经有了相应的内存空间和其他资源。
  • (2)运行:1、如果线程是Thread的子类创建的,该类中的run()方法就立刻执行,且程序必须在子类中重写父类的run()方法。2、在线程没有结束run()方法之前,不要让线程再调用start()方法,否则将发生IllegalThreadStateException异常
  • (3)中断:有4种原因的中断:
    JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。
    线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状。
    线程使用CPU资源期间,执行了wait()方法。
    线程使用CPU资源期间,执行某个操作进入阻塞状态。
  • (4)死亡:所谓死亡状态就是线程释放了实体,即释放分配给线程对象的内存,处于死亡状态的线程不具有继续运行的能力

3、 线程的常用方法

  • start()方法:线程调用该方法启动。
  • run()方法:与Runnable接口中run()方法的功能和作用相同,只有当该方法运行结束后,线程才能再次调用start()方法。
  • sleep(int millsecond)方法:调用该方法中断线程,过了参数指定的秒数过后才“醒来”。该方法必须在try-catch语句中调用,因为线程如果在休眠中被打断,会抛出InterruptedException异常。
  • isAlive()方法:判断线程是否正在运行,若是,返回true,若不是,返回false。注意,一个已经运行的线程在没有进入死亡状态时,不要再给线程分配实体。
  • currentThread()方法是Thread类中的类方法,返回当前使用CPU的线程。
  • interrupt()方法用来“唤醒”调用sleep方法而处于睡眠状态的线程。

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

  • 问题1:在编写四则运算计算器时在windows命令窗口输入(乘号*),报出异常,但是输入带引号的乘号“*”运行正常。

  • 解决方法:根据百度查找解答得知在windows控制台下运行java程序,输入的命令行中有*(作为乘号使用)必须写成"*"这种形式。

  • 问题2:数组调用length方法不用带()否则会出现错误。

代码托管

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

posted @ 2018-04-22 17:42  20165336康志强  Views(126)  Comments(0Edit  收藏  举报