Day22--内存分析

xiaokunzhong / 2024-11-10 / 原文

Day22--内存分析

Java 内存分析:

1.堆:

存放 new 的对象和数组;

可以被所有的线程共享:不会存放别的对象引用

2.栈

存放基本变量类型(会包含这个基本类型的具体数值)

引用对象的变量(会存放这个引用在堆里面的具体地址)

3.方法区

可以被所有的线程共享

包含了所有的 class 和 static 变量。

示例

1.未声明数组时:

image-20241022173218931

2.已声明数组 int[] array;

image-20241022173311006

3.创建数组 array=new int[10];

image-20241022173359809

4.给数组元素赋值

image-20241022173521196

三种初始化

静态初始化:

int[] a={1,2,3};

Man[] mans ={new Man(1,1), new Man(2,2)};//暂时不用理解

动态初始化:

int [ ] a = new int [2];

a[0]=1;

a[1]=2;

数组的默认初始化:

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

(除了八大数据类型,其他的都是引用类型)