类的生命周期

简介: 1.java虚拟机及程序的生命周期java虚拟机的生命周期:java虚拟机进程从启动到终止的过程.在以下情况下java虚拟机将结束生命周期01.程序正常执行结束;02.程序在执行中因为出现异常或错误而异常终止;03.

1.java虚拟机及程序的生命周期

java虚拟机的生命周期:java虚拟机进程从启动到终止的过程.

在以下情况下java虚拟机将结束生命周期

01.程序正常执行结束;

02.程序在执行中因为出现异常或错误而异常终止;

03.执行类System.exit()方法.

04.由于操作系统出现错误而导致java虚拟机进程终止.

java程序的生命周期:

java程序从运行到终止到过程称为程序的生命周期,它和java虚拟机的生命周期是一致的.

2.类的加载,连接和初始化

当java程序需要使用某个类时,java虚拟机会确保这个类已经被加载,连接,初始化,其中连接包括:加载,连接,初始化 过程如下图:

这些步骤必须严格的按照这个顺序执行:

(1).加载:查找并加载类的二进制数据.

(2).连接:包括验证.准备和解析类的二进制数据.

01.验证:确保被加载类的正确性;

02.准备:为类的静态变量分配内存.并将其初始化为默认值;

03.解析:把类中的符号引用转换为直接引用.

(3).初始化.给类的静态变量赋予正确的初始值.

2.1.类的加载

类的加载:
1把.class文件中的二进制数据读取到内存中
2把它放在运行时数据区的方法区
3.在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构(类的加载的最终产品便是运行时数据区的堆区的Class对象)

类的加载的最终产品是位于运行时数据区的堆区的Class对象,Class对象封装了类在方法区内的数据结构,并且向java程序提供类访问类在方法区内的数据的接口

类的加载器:

主要任务是完成类的加载

类的加载器分为两种:

01,java虚拟机自带的加载器,包括启动类加载器.扩展类加载器和系统类加载器.

02,用户自定义的类加载器,是java.lang.ClassLoader类的子类的实例,用户可以通过它来定制类的加载方式

java虚拟机允许类加载器在预料某个类将要被使用的时候预先加载它(即预加载机制),而不需要再等到需要"首次主动使用"时再加载它,预先加载时,如果遇到.class文件缺失或者存在问题,类加载器,必须等到程序首次主动使用该类时才会报错,如果这个类一直不使用,那么类加载器不会报告错误.

后续...........

相关文章
|
8月前
|
安全 Java
JVM的类的生命周期
JVM的类的生命周期
|
2月前
|
应用服务中间件
生命周期
Servlet接口中一共是5个方法,其中有三个是生命周期方法。 Ø void init(ServletConfig):这个方法会在Servlet被创建后,马上被调用。只会被调用一次!我们可以把一些初始化工作放到这个方法中,如果没有什么初始化工作要做,那么这个方法就空着就可以了。 ² Servlet有两个时间点会被创建:一是在第一次被请求时,会被创建;二是Tomcat启动时被创建,默认是第一种,如果希望在tomcat启动时创建,这需要在web.xml中配置。 Ø void destroy():这个方法会在Servlet被销毁之前被调用。如果你有一些需要释放的资源,可以在这个方法中完成,如果
|
5月前
NettyHandler 常用生命周期方法
NettyHandler 常用生命周期方法
35 0
|
8月前
|
缓存 JavaScript
onActivated 生命周期的使用和介绍
onActivated 生命周期的使用和介绍
454 3
|
8月前
|
前端开发 JavaScript Python
学不懂生命周期函数正常吗?
学不懂生命周期函数正常吗?
|
8月前
将生命周期方法添加到类中
将生命周期方法添加到类中
|
Java 容器 Spring
bean的作用域和生命周期和后置处理器以及作用域对生命周期的影响~
bean的作用域和生命周期和后置处理器以及作用域对生命周期的影响~
IT服务生命周期
IT服务生命周期
372 0
|
存储 安全 Java
一文解读类的加载过程(类的生命周期)(上)
一文解读类的加载过程(类的生命周期)
|
缓存 Java 开发者
一文解读类的加载过程(类的生命周期)(下)
一文解读类的加载过程(类的生命周期)(下)

热门文章

最新文章