`
yufenfei
  • 浏览: 798087 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JVM之二(JVM实例生命周期和对象的生命周期)

    博客分类:
  • JVM
 
阅读更多

 

 

JVM实例生命周期和对象的生命周期

JVM实例负责运行一个Java程序。当启动一个Java程序时,一个JVM实例也就产生。当该程序关闭退出,这个JVM实例也就随之消亡。

 

Java虚拟机及程序的生命周期

1)通过java命令运行一个Java程序时,启动一个Java虚拟机进程;

2Java虚拟机进程从启动到终止的过程,称为Java虚拟机生命周期;

3)程序生命周期和Java虚拟机生命周期是一致的,因为Java虚拟机进程从创建起的任务就是执行Java程序。

类的加载,连接和初始化

 

Java程序要使用某个类时,Java虚拟机要确保这个类被加载,连接和运行,其中连接包括验证,准备和解析。

 

1、装载:查找并加载类的二进制数据;

装载的最终目标是实现将编译后的class文件(class文件采用字节码,是JVM的机器语言)装入内存运行时数据区的方法区中,并在内存运行时数据区的堆区生成一个class对象,这个对象可以引用到方法区中的类定义

 

2、连接

  1)验证:确保加载类的正确性;

  2)准备:为静态变量分配内存,并将其初始化为默认值;

  3)解析:将类中的符号引用转换为直接引用。

 

3、初始化:

       类的初始化过程是执行类的初始化语句,包括静态变量的声明语句,以及静态代码块,静态代码块的作用即是为静态变量赋初始化值。

 

4、卸载

只有没有任何引用指向Class对象的时候,这时候才会卸载类,结束类的生命周期。

 

  • 大小: 25 KB
分享到:
评论

相关推荐

    最新java面试专题01-JVM

    JVM生命周期:JVM的生命周期始于启动一个Java程序,此时会创建一个JVM实例。程序中的public static void main(String[] args)方法作为JVM实例运行的起点。 垃圾收集:JVM具有自动内存管理和垃圾收集机制,用于自动...

    Java虚拟机JVM类加载初始化

    由Java虚拟机自带的默认加载器(根加载器、扩展加载器、系统加载器)所加载的类在JVM生命周期中始终不被卸载。所以这些类的Class对象(我称其为实例的模板对象)始终能被触及!而由用户自定义的类加载器所加载的类会...

    Java中类与对象的生命周期

     而java类的生命周期是其字节码文件装载、连接、初始化、使用、和卸载的整个过程。  ● 装载。  jvm找到需要装载的类,将类的信息装载到jvm的方法区中。然后在堆区实例化一个java.lang.Class对象,作为方法...

    Servlet生命周期

    Servlet 的生命周期: Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:   Servlet 加载—>实例化—>服务—>销毁。   1.Servlet 通过调用 init () 方法进行初始化。 2....

    service-lifecycle-mgmt:服务生命周期管理应用

    JVM3 = 托管服务生命周期管理应用程序的服务器 所有这些服务器都通过 REST API 相互通信,并且必须单独设置,因为这是测试此应用程序的环境。 整个安装的先决条件是克隆 git 存储库并且您已将目录更改为 ...

    java实现内存动态分配

    局部变量 new 出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等待GC回收。 java实现内存动态分配目录 一.实验原理 二.实验流程图 三.实验代码 四.实验结果

    精通Hibernate:对象持久化技术第二版part3

    本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...

    [Java] 对象类型转换和运算符 instanceof 学习笔记 [#子类转父类 #父类转子类 #对象和引用的区别]

    [Java] 对象类型转换和运算符 instanceof 学习笔记 欢迎大家收看 把简单的问题变复杂系列 : ) ...正因为这个性质,导致引用变量的生命周期和其管理的对象相同。 内存区别:对象被实例化后要开辟内存空间,而引用对象

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    7.2.2 垃圾收集和对象的终结 7.3 卸载类型 7.4 随书光盘 7.5 资源页 第8章 连接模型 8.1 动态连接和解析 8.1.1 解析和动态扩展 8.1.2 类装载器与双亲委派模型 8.1.3 常量池解析 8.1.4 解析...

    学会这些java面试题让你吊打面试官

    1.Java中内存管理及各区域内存储数据的生命周期? 2.JVM堆内存的分代管理以及垃圾回收流程? 3.面向对象三大特征及详细理解? 4.重载与重写的区别? 5.接口和抽象类区别? 6.实例变量和静态变量的区别? 7.八大基本类型及...

    2024年Java高工面试题 2024年Java高工面试题 2024年Java高工面试题

    2024年Java高工面试题 ...(3)利用Bean definition创建Bean就是Bean的创建生命周期,包括:合并Bean Definition 推断构造方法、实例化、属性填充、初始化前、初始化、初始化后等其中AOP就是发生在初始化后这一步

    java编程基础,应用与实例

    19.2 Applet的生命周期 344 19.3 Applet的多媒体处理 346 19.3.1 图像处理 346 19.3.2 声音处理 347 19.4 Applet参数 348 19.5 使用浏览器控制Applet 350 19.6 使用Applet控制浏览器 351 19.7 控制...

    超级有影响力霸气的Java面试题大全文档

     SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。...

    JDayLviv-ThreadDumpsOnJVM:JDayLviv 2015的演示文稿,JVM上的线程转储

    JVM概述从http://2.bp.blogspot.com/ : 线程数java.lang.Thread的实例有关联的本机线程有名称(或命名为Thread#nextNumberInSequence) 具有局部变量,仅给定线程可访问重要的线程生命周期枚举: java.lang....

    java类加载机制.xmind

    该文件是JVM中关于类加载机制的知识整理的思维导图,包括类加载机制概述、类加载的生命周期、加载时机、加载过程、类加载、类的初始化和实例化等几个大方面进行了讲解,其中类加载中还对JVM三种预定义类加载器进行了...

    JAVA面试题最全集

    掌握类和对象的概念,掌握面向对象编程的本质 49.静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法? 50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其...

    千方百计笔试题大全

    241、bean 实例的生命周期 56 242、激活机制 56 243、remote接口和home接口主要作用 56 244、客服端调用EJB对象的几个基本步骤 56 245、 如何给weblogic指定大小的内存? 56 246、如何设定的weblogic的热启动模式...

    java面试宝典

    241、bean 实例的生命周期 56 242、激活机制 56 243、remote接口和home接口主要作用 56 244、客服端调用EJB对象的几个基本步骤 56 245、 如何给weblogic指定大小的内存? 56 246、如何设定的weblogic的热启动模式...

Global site tag (gtag.js) - Google Analytics