zoukankan      html  css  js  c++  java
  • 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脚本的运行结果截图)

  • 相关阅读:
    2331: [SCOI2011]地板 插头DP
    APIO2018 铜滚记
    2827: 千山鸟飞绝 非旋treap
    3682: Phorni 后缀平衡树 线段树
    4712: 洪水 基于链分治的动态DP
    20180507小测
    4923: [Lydsy1706月赛]K小值查询 平衡树 非旋转Treap
    5312: 冒险 线段树 复杂度分析
    5210: 最大连通子块和 动态DP 树链剖分
    4513: [Sdoi2016]储能表 数位DP
  • 原文地址:https://www.cnblogs.com/20165336kzq/p/8908445.html
Copyright © 2011-2022 走看看