【Android面试八股文】请描述new一个对象的流程

作者 : admin 本文共462个字,预计阅读时间需要2分钟 发布时间: 2024-06-15 共1人阅读

文章目录

  • 请描述new一个对象的流程
    • JVM创建对象的过程
    • 检查加载
    • 分配内存
    • 内存空间初始化
    • 设置
    • 对象初始化

请描述new一个对象的流程

JVM创建对象的过程

当JVM遇到一条new指令时,它需要完成以下几个步骤:

  • 类加载与检查
  • 内存分配
    • 并发安全性
  • 内存空间初始化
  • 设置对象信息
  • 对象初始化

下图展示了JVM创建对象的过程:
【Android面试八股文】请描述new一个对象的流程插图
虚拟机遇到一条new指令时,首先检査是否被类加载器加载,如果没有,那必须先执行相应的类加载过程。类加载就是把class加载到JVM的运行时数据区的过程。

检查加载

首先检査这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检査类是否已经被加载、解析和初始化过。

  • 符号引用

    以一组符号来描述所引用的目标。符号引用可以是任何形式的字面量,JAVA在编译的时候一个每个java类都会被编译成一个class文件,但在编译的时候虚拟机并不知道所引用类的地址(实际地址),就用符号引用来代替,而在类的解析阶段就是为了把这个符号引用转化成为真正的地址的阶段。

    总结一句话就是:在编译阶段,Java源代码中的类、方法和字段用符号引用来表示。在运行

本站无任何商业行为
个人在线分享 » 【Android面试八股文】请描述new一个对象的流程
E-->