栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中各种常见的生命周期

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中各种常见的生命周期

Java中各种常见的生命周期 1.Spring bean的生命周期?

​ 1、Spring 容器根据配置中的 bean 定义中实例化 bean。

​ 2、Spring 使用依赖注入填充所有属性,如 bean 中所定义的配置。

​ 3、如果 bean 实现 BeanNameAware 接口,则工厂通过传递 bean 的 ID 来调用 setBeanName()。

​ 4、如果 bean 实现 BeanFactoryAware 接口,工厂通过传递自身的实例来调用 setBeanFactory()。

​ 5、如果存在与 bean 关联的任何 BeanPostProcessors,则调用 preProcessBeforeInitialization() 方法。

​ 6、如果为 bean 指定了 init 方法( 的 init-method 属性),那么将调用它。

​ 7、最后,如果存在与 bean 关联的任何 BeanPostProcessors,则将调用 postProcessAfterInitialization() 方法。

​ 8、如果 bean 实现 DisposableBean 接口,当 spring 容器关闭时,会调用 destory()。

​ 9、如果为 bean 指定了 destroy 方法( 的 destroy-method 属性),那么将调用它。

2.servlet的生命周期?

Servlet生命周期可以分成四个阶段:加载和实例化、初始化、服务、销毁。

具体如下:

  1. 当客户第一次请求时,首先判断是否存在Servlet对象,若不存在,则由Web容器创建对象,
  2. 而后调用init()方法对其初始化,此初始化方法在整个Servlet生命周期中只调用一次。

3. 完成Servlet对象的创建和实例化之后,Web容器会调用Servlet对象的service()方法来处理请求。

  1. 当Web容器关闭或者Servlet对象要从容器中被删除时,会自动调用destory()方法。
3.Java中类的生命周期是什么?

​ 1. 加载,查找并加载类的二进制数据,在Java堆中也创建一个java.lang.Class类的对象

​ 2. 连接,连接又包含三块内容:验证、准备、初始化。 1)验证,文件格式、元数据、字节码、符号引用验证; 2)准备,为类的静态变量分配内存,并将其初始化为默认值; 3)解析,把类中的符号引用转换为直接引用

  1. 初始化,为类的静态变量赋予正确的初始值
  2. 使用,new出对象程序中使用
  3. 卸载,执行垃圾回收
4. 线程的生命周期?

​ 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。 在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞 (Blocked)和死亡(Dead)5 种状态。尤其是当线程启动以后,它不可能一直"霸占"着 CPU 独自 运行,所以 CPU 需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换

这5种状态如下:

(1)新建(New):创建后尚未启动的线程处于这种状态

(2)运行(Runable):Runable包括了操作系统线程状态的Running和Ready,也就是处于此状态的线程有可能正在执行,也有可能正在等待着CPU为它分配执行时间。

(3)等待(Wating):处于这种状态的线程不会被分配CPU执行时间。等待状态又分为无限期等待和有限期等待,处于无限期等待的线程需要被其他线程显示地唤醒,没有设置Timeout参数的Object.wait()、没有设置Timeout参数的Thread.join()方法都会使线程进入无限期等待状态;有限期等待状态无须等待被其他线程显示地唤醒,在一定时间之后它们会由系统自动唤醒,Thread.sleep()、设置了Timeout参数的Object.wait()、设置了Timeout参数的Thread.join()方法都会使线程进入有限期等待状态。

(4)阻塞(Blocked):线程被阻塞了,“阻塞状态”与”等待状态“的区别是:”阻塞状态“在等待着获取到一个排他锁,这个时间将在另外一个线程放弃这个锁的时候发生;而”等待状态“则是在等待一段时间或者唤醒动作的发生。在程序等待进入同步区域的时候,线程将进入这种状态。

(5)结束(Terminated):已终止线程的线程状态,线程已经结束执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860589.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号