zoukankan      html  css  js  c++  java
  • 深入浅出JVM(一):你写得.java文件是如何被加载到内存中执行的

    众所周知,.java文件需要经过编译生成.class文件才能被JVM执行。

    其中,JVM是如何加载.class文件,又做了些什么呢?

    .class文件通过 加载-》验证-》准备-》解析 等过程,加载到方法区中,等待代码的调用,下面讲讲每个步骤都干了些什么吧

    一、加载

      将.class文件加载到jvm中。

    那么何时加载呢?当类被调用的时候!例如:new A();的时候A被加载到内存中。这里需要注意,并不是每次使用的时候都会加载,只是第一次使用的时候加载进来。

    二、验证

      验证.class文件的合规性。

    防止.class文件被篡改,导致文件无法执行

    三、准备

      为类分配内存,给静态变量默认初始化赋值

    四、解析

      将符号引用变为直接引用

    将引用变成指针指向。

    上述类加载过程在类加载器完成,细节其实很复杂,我们只需要了解核心即可。而类加载器又涉及到双亲委派。自行学习

      

  • 相关阅读:
    C#-Linq-SelectMany
    C#-Linq-SelectMany
    DI是实现面向切面和面向抽象的前提
    java流程控制之Scanner(2)
    java流程控制之Scanner(1)
    java运算符之三目运算符
    java运算符之位运算
    java运算符之与或非
    java运算符之加减乘除
    java基础语法
  • 原文地址:https://www.cnblogs.com/zjting/p/11301419.html
Copyright © 2011-2022 走看看