• java内存划分


    1. 栈(Stack):存放的都是方法中的局部变量,方法的运行一定要在栈当中。
      局部变量: 方法的参数,或者是方法{}内部的变量。
      作用域:一旦超出作用域,立刻从栈内存当中消失。
    2. 堆(Heap):凡是new出来的东西,都在堆当中。
      堆内存里面的东西都有一个地址值:16进制。
      堆内存里面的数据,都有默认值,规则:
      如果是整型,动态数组默认为0
      如果是浮点型,动态数组默认为0.0
      如果是字符类型,动态数组默认为'u0000'
      如果是布尔类型,动态数组默认为false
      如果是引用类型,动态数组默认为null
    3. 方法区(Method Area):存储.class相关信息,包含方法的信息。
    4. 本地方法栈(Native Method Stack):与操作系统相关。
    5. 寄存器(pc Register): 与CPU相关

    一个数组的内存图

    两个数组的内存图

    两个引用指向同一个数组

  • 相关阅读:
    推荐Windows下SVN服务器端和客户端工具软件
    QT的一些小知识
    Qt
    Qt
    ADB
    HTTP
    Python
    项目附
    项目
    架构
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/11693560.html
Copyright © 2020-2023  润新知