`
chinagdvea
  • 浏览: 130527 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
社区版块
存档分类
最新评论

JAVA类生命周期

    博客分类:
  • JAVA
阅读更多
java编译器讲java源代码编译成.class的字节码文件.然后jvm再将字节码转化为机器码交给机器执行.java字节码文件是实现跨平台的基础.他与平台无关

JVM的具体执行流程是 装载-验证-准备-解析-初始化-对象实例化-垃圾回收-对象终结-卸载类型

一.装载:将.class的二进制文件通过类加载器转入JVM的方法区

二.验证:由java编译器生成的java类的二进制数据肯定是正确的,为什么还要进行类的验证,因为java虚拟机并不知道某个特定的.class文件到底是如何被创建的,这个.class文件有可能是由正常的java编译器生成的,也可能是由黑客特制的,黑客视图通过它来破坏jvm环境。类的验证能提高程序的健壮性,确保程序被安全的执行。

类验证的内容:

     1 类文件的结构检查,确保类文件遵从java类文件的固定格式。

      2 语义检查确保本身符号java语言的语法规定,如验证final类型的类没有子类等

      3 字节码验证:确保字节码可以被jvm安全的执行,字节码代表java方法(包括静态和实例方法),它是由被称做操作码的单字节指令组成的序列,每一个操作码后都跟着一个或多个操作数。字节码验证步骤会检查每个操作码是否合法,即是否有合法的操作数。

      4 二进制兼容的验证,确保相互引用的之间协调一致,如Worker类的goWork方法会调用Car类的run方法,jvm在验证Worker类时,会检查方法区内是否存在car类的run方法,如不存在会(Worker 类和car类版本不兼容就会出现问题),就会抛出NoSuchMethodError错误。

(注:Error类就是在验证阶段由JVM抛出的)



三.准备:JVM为类变量分配内存

四.解析:将类,接口,字段和方法等的符号引用替换成直接引用(如Test.method()这个.方法就是符号引用.JVM会生成一个直接指向method()方法的引用)

五.初始化:为类变量赋初始值

六.垃圾回收:释放方法区.栈区.堆区的内存
分享到:
评论

相关推荐

    Java中类的生命周期

    ### Java中类的生命周期 #### 一、Java虚拟机与程序生命周期 在深入了解Java中类的生命周期之前,我们首先需要了解Java虚拟机(JVM)及其生命周期的概念。 **1. Java虚拟机启动** 当我们通过`java`命令运行一个...

    通过代码实例解析JAVA类生命周期

    Java 类生命周期是指从类加载到内存到卸载出内存的过程,包括加载、验证、准备、初始化和卸载五个阶段。本文将通过一个具体的代码实例来详细解析这些阶段。 首先,让我们分析给定的代码: ```java public class ...

    详解java类命周期.doc

    ### 详解Java类的生命周期 #### 一、Java类生命周期概览 Java类的生命周期是指一个`.class`文件从被加载到最终卸载的过程。这一过程主要包括五个阶段:加载(Loading)、连接(Linking)、初始化(Initialization...

    Java虚拟机和Java程序的生命周期?

    Java程序的生命周期从类的加载开始,到程序结束为止。主要包括以下几个阶段: 1. **启动阶段**:启动Java虚拟机,创建主类的对象并调用其`main()`方法。 2. **运行阶段**:程序开始执行,包括类的加载、初始化、...

    java线程生命周期详细讲解

    Java多线程生命周期的讲解,很详细,希望能帮到大家

    java servlet生命周期

    java servlet生命周期 java servlet生命周期

    Java中类的生命周期与java垃圾回收机制

    Java中类的生命周期与java垃圾回收机制

    详解java类的生命周期.doc

    ### 详解Java类的生命周期 #### 引言 在探讨Java类的生命周期之前,我们先简单回顾一下Java类从创建到销毁的过程。Java作为一种广泛使用的编程语言,其强大的功能背后离不开Java虚拟机(JVM)的支持。对于Java...

    Java中对象的生命周期 ..doc

    ### Java中对象的生命周期 #### 一、对象的生命周期概览 在Java中,对象的生命周期是指从对象被创建到最终被垃圾回收器回收这段时间。理解对象的生命周期对于有效地管理和优化Java应用程序至关重要。 #### 二、...

    java变量的生命周期与作用域

    Java 变量的生命周期和作用域是密切相关的,变量的生命周期可以分为三个阶段:定义、初始化和销毁,而作用域可以分为四种:方法作用域、块作用域、类作用域和实例作用域。同时,函数的概念与作用是实现代码的重用性...

    详解java类的生命周期

    本文详细讲述了一个java类自调入内存至被卸载的整个声明周期,对理解对象的生命周期,jvm中的类加载等内容有所帮助。

    Java中类的生命周期.doc

    ### Java中类的生命周期 #### 一、概述 在Java编程语言中,类的生命周期是从类被加载到Java虚拟机(JVM)中开始,经过一系列处理直至类被卸载的过程。这一过程中涉及的关键步骤包括类的加载、连接、初始化等。理解...

    Java线程生命周期.zip

    Java线程生命周期是Java编程中的核心概念,它关乎程序的并发执行和性能优化。线程在Java中扮演着至关重要的角色,特别是在多任务处理和实时系统中。理解线程的生命周期有助于开发者更有效地管理和控制程序运行流程。...

    Java对象生命周期管理.pdf

    Java对象生命周期管理是Java开发中不可或缺的一个重要环节。在Java编程中,对象的创建、使用和销毁是由垃圾收集器自动管理的。理解这一过程对于优化应用程序性能至关重要,因为不恰当的对象管理可能导致内存泄漏,...

    深入java虚拟机(三)——类的生命周期(下)类的初始化1

    【深入Java虚拟机(三)——类的生命周期(下)类的初始化1】 类的生命周期在Java中是一个关键的概念,它涵盖了从加载到卸载的整个过程。在类的生命周期中,初始化阶段是非常重要的,因为它涉及到类的静态变量的赋值...

    spring bean的生命周期

    Spring Bean的生命周期是Spring框架中的核心概念,它涵盖了Bean从创建到销毁的全过程。了解这一过程对于优化应用程序的性能和管理资源至关重要。在Spring中,Bean的生命周期主要分为以下几个阶段: 1. **初始化阶段...

    深入java虚拟机(二)——类的生命周期(上)类的加载和连接1

    【深入Java虚拟机(二)——类的生命周期(上)类的加载和连接】 Java虚拟机(JVM)是Java程序的核心,它负责解释和执行Java字节码。类的生命周期在JVM中是一个关键的概念,它涵盖了从类的加载到卸载的整个过程。...

Global site tag (gtag.js) - Google Analytics