本文目录一览:
- 不同范围的javabean的生命周期有什么不同
- javabean的生命周期中哪个是用来跟踪用户会话的
- java线程的生命周期有哪些
- JAVA:线程的生命周期是什么
- 【Java基础】线程生命周期有哪些阶段?
- Java类的生命周期包括哪几个阶段
不同范围的javabean的生命周期有什么不同
JavaBean的生命周期存在于4中范围之中,分别为page、request、session、application,它们通过jsp:userBean标签的sope属性进行设置,与jsp页面中的page、request、session、application范围相对应。
- page 范围:与当前页面相对应,JavaBean的生命周期存在于一个页面之中,当页面关闭时javaBean被销毁
- request 范围:与JSP的request生命周期相对应,JavaBean的生命周期存在于request对象之中,当request对象销毁时JavaBean也被销毁
- session范围:与JSP的session生命周期相对应,JavaBean的生命周期存在于session回话之中,当session超时或回话结束时JavaBean被销毁
- application范围:与JSP的application生命周期相对应,在各用户与服务器之间共享,只有当服务器关闭时JavaBean才被销毁 当JavaBean被创建后,通过jsp:setProperty标签与jsp:getProperty标签调用时,将会按照page、request、session、application的顺序来查找这个JavaBean实例,直到找到一个实例对象为止,如果都找不到,则抛出异常。
javabean的生命周期中哪个是用来跟踪用户会话的
javabean的生命周期用来跟踪用户会话的是session。JavaBean作为一个独立的功能模块,可以被JSP或者Servlet重复使用。JavaBean的存在,大大减少了JSP中的脚本,有利于WEB开发中MVC模式的建立。
java线程的生命周期有哪些
生命周期的五种状态
- 新建(new Thread)
当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。
例如:Thread t1 = new Thread();
- 就绪(runnable)
线程已经被启动,正在等待被分配给CPU时间片,也就是说此时线程正在就绪队列中排队等候得到CPU资源。
例如:t1.start();
- 运行(running)
线程获得CPU资源正在执行任务(run()方法),此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到结束。 - 死亡(dead)
当线程执行完毕或被其它线程杀死,线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行。- 自然终止:正常运行run()方法后终止
- 异常终止:调用stop()方法让一个线程终止运行
- 堵塞(blocked)
由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。- 正在睡眠:用
sleep(long t)
方法可使线程进入睡眠方式。一个睡眠着的线程在指定的时间过去可进入就绪状态。 - 正在等待:调用
wait()
方法。(调用notify()
方法回到就绪状态) - 被另一个线程所阻塞:调用
suspend()
方法。(调用resume()
方法恢复)
- 正在睡眠:用
JAVA:线程的生命周期是什么
- 一个线程的生命周期可以分成两阶段:生存周期和死亡周期,其中生存周期又包括运行状态和等待状态。当创建一个新线程后,这个线程就进入了排队状态,当线程中的方法
start()
被调用时,线程就进入生存周期,这时它的方法isAlive()
始终返回真值,直至线程进入死亡状态。 - 有两种方法可以实现线程,一种是扩展
java.lang.Thread
类,另一种是通过java.lang.Runnable
接口 - 范例
import java.awt.*;
class Sample1 {
public static void main(String[] args) {
Mythread test1 = new Mythread(1);
Mythread test2 = new Mythread(2);
test1.start();
test2.start();
}
}
class Mythread extends Thread {
int id;
Mythread(int i) {
id = i;
}
public void run() {
int i = 0;
while (id + i == 1) {
try {
sleep(1000);
} catch (InterruptedException e) {
}
}
System.out.println("The id is " + id);
}
}
【Java基础】线程生命周期有哪些阶段?
Java线程具有五种基本状态:
- 新建状态(New)
当线程对象创建后,即进入了新建状态,如:Thread t = new MyThread();
- 就绪状态(Runnable)
当调用线程对象的start()
方法(t.start();
),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了t.start()
此线程立即就会执行; - 运行状态(Running)
当CPU开始调度处于就绪状态的线程时,此时线程才得以真正执行,即进入到运行状态。注:就绪状态是进入到运行状态的唯一入口,也就是说,线程要想进入运行状态执行,首先必须处于就绪状态中; - 阻塞状态(Blocked)
处于运行状态中的线程由于某种原因,暂时放弃对CPU的使用权,停止执行,此时进入阻塞状态,直到其进入到就绪状态,才有机会再次被CPU调用以进入到运行状态。根据阻塞产生的原因不同,阻塞状态又可以分为三种:- 等待阻塞:运行状态中的线程执行
wait()
方法,使本线程进入到等待阻塞状态; - 同步阻塞:线程在获取
synchronized
同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态; - 其他阻塞:通过调用线程的
sleep()
或join()
或发出了I/O请求时,线程会进入到阻塞状态。当sleep()
状态超时、join()
等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
- 等待阻塞:运行状态中的线程执行
- 死亡状态(Dead)
线程执行完了或者因异常退出了run()
方法,该线程结束生命周期。
Java类的生命周期包括哪几个阶段
- 加载:查找并加载类的二进制数据
- 连接:分为三个小阶段:
- 验证:确保被加载的类的正确性
- 准备:为类的静态变量分配内存,并将其初始化为默认值
- 解析:把类中的符号引用转换为直接引用
- 初始化:为类的静态变量赋予正确的初始值
- 使用:又分为主动使用和被动使用。
- 卸载:由JVM自带的类加载器所加载的类,在JVM的生命周期中,始终不会被卸载。但是由用户自定义的类加载器所加载的类是可以被卸载的。 以上只是做部分说明。要细说的话,内容还是很多的。