栈的划分、数组的内存图

栈的划分

java走中存心需要划分为5个部分:

  1栈(Stack):存放的方法都是局部变量,真正方法运行都是在栈当中

          局部变量:方法的参数,或者是方法{}内部的变量

         特点:有作用域:一旦超出作用域,立即从栈内存中消失

  堆(Heap):凡是new出来的,都是在堆当中

           对内存里面的东西都是有一个地址值:地址值是16进制的

        堆内存的数据都是有默认值的

        整数:默认为0

        浮点数:默认为0.0

        字符: 默认为'\u0000'

        布尔:默认为false

        引用类型:默认为null

 方法区(Method Area): 存储 .class 相关信息,包方法的信息

 本地方法栈(Native Method Stack):与操作系统相关

    寄存器(pc Register):与CPU相关

数组的内存图

 首先我们创建两个动态数组,然后分别打印输出。在第二个值的时候赋值

 

public class array1 {
public static void main(String[] args) {
int[] ints = new int[5];
for (int i = 0; i < ints.length; i++) {
System.out.println(ints[i]);
}
System.out.println("=============");
int[] ints1 = new int[5];
System.out.println(ints1[0]);
System.out.println(ints1[1]=10);
System.out.println(ints1[2]=20);
}
}

 

 那么画一个图来看一下,数组的内存图

 

我们画了以一个方法区和栈和堆 我们数组起的变量名字 会进栈 

main方法会进方法区 

在数组中存储中的数据 都是在 堆中

posted @ 2022-06-28 16:37  一位程序袁  阅读(53)  评论(0编辑  收藏  举报