数组在内存中的解释

 1 public class Array_Memory {
 2     public static void main(String[] args) {
 3         int[] a = {3,4,66,5};//定义了一个数组
 4
 5         int[] b = a;//将a这个数组的地址值赋给了b,a和b就好像公用了以台电脑
 6         b[2] = 77;//b把一角标的值该为77;
 7         a = null;//a不再指向该数组,但是b还在指向该数组,就好像a不用这台电脑了但b还再用,所以内存中没有垃圾,因为数组还有人在使用。
 8         System.out.println(b[2]);//b仍然可以用该数组.
 9     }
10 }

局部代码块,用于限定局部变量的生命周期

{
    int age = 7;
}
//System.out.println(age);//不能再访问age了,因为age已经释放了

内存的划分:

1.寄存器

2.本地方法区

3.方法区

4.栈内存  存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放

5.堆内存  存储的是数组,对象(其实数组就是一个对象),用new创建的都存储在堆内存中

特点:每个实体都有首地址值        堆内存中的每个变量都有默认初始化值

时间: 2024-12-24 19:07:16

数组在内存中的解释的相关文章

Java千百问_06数据结构(016)_引用类型数组在内存中如何储存

点击进入_更多_Java千百问 1.存放基本类型数组在内存中如何储存 java的数组中可以存放引用类型. 存放引用类型的内存分布相比存放基本类型相对复杂.来看一段存储基本类型的程序: 了解什么是数组看这里:java中的数组是什么 了解数组在内存中的储存看这里:java数组如何存储在内存中 public class TestPrimitiveArray { public static void main(String[] args) { //1.定义数组 int[] numbers; //2.分配

C++数组在内存中的分配

接前一篇的内容,C++中数组在内存中也有静态分配和动态分配的区别.静态数组建立的方式为:A a[],它在栈上分配空间;动态方式是使用new,malloc在堆上分配. 数组要么在静态存储区被创建(如全局数组),要么在栈或堆上被创建.数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变.看下例: 1 #include<iostream> 2 using namespace std; 3 void test() 4 { 5 char ch[]="hel

Java中数组在内存中的图解

Java中的数组在内存中的图解,其实对于数组,还是比较熟悉的,平时用的也是很多的,在看数据结构与算法的极客时间专栏,最常用的10个数据结构:数组.链表.栈.队列.散列表.二叉树.堆.跳表.图.Trie树,其中数组是最基础,也是学起来最简单的一种数据结构,数组是一种线性表数据结构.它用一组连续的内存空间,来存储一组具有相同类型的数据. 以下三张图片都是极客时间专栏中的,嘿嘿嘿!!! 数组是计算机分配的一组连续的内存空间 接下来,具体到Java语言,来说说数组吧:(这个是传智播客上的讲解图,这么好的

Java数组在内存中是如何存放的

阅读目录 一维数组 二维数组 数组对象及其引用存放在内存中的哪里? Java中有两种类型的数组: 基本数据类型数组: 对象数组: 当一个对象使用关键字“new”创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说也是一样的,因为数组也是一个对象: 一维数组 int[] arr = new int[3]; 在以上代码中,arr变量存放了数组对象的引用:如果你创建了空间大小为10的整形数组,情况是一样的,一个数组对象所占的空间在堆上被分配,然后返回其引用: 二维数组 那么二维数组是如何存储

C# 数组在内存中的存储

C# 数组是引用类型,那么在内存中是如何存储的呢? 在VS中调试C#程序,如何查看内存.寄存器.反汇编 在这篇文章里看到了如何在VS 中查看内存 先断点打在数组创建后语句那里,点debug->Windows->Memory, 选一个随便memory 在immediate window里 输入 &变量名 arr,获取arr的内存地址. &arr0x009becd8  ----->在堆栈中引用地址 *&arr: 0x02d75cb4  ----->在托管堆中空间

Java千百问_06数据结构(014)_java数组如何存储在内存中

点击进入_更多_Java千百问 1.数组的内存空间是何时分配的 java中的数组是用来存储同一种数据类型的数据结构,一旦初始化完成,即所占的空间就已固定下来,初始化的过程就是分配对应内存空间的过程.即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变. 了解什么是数组看这里:java中的数组是什么 当仅定义一个数组变量(int[] numbers)时,该变量还未指向任何有效的内存,因此不能指定数组的长度,只有对数组进行初始化(为数组元素分配内存空间)后才可以使用. 数组初始化分为静

Java千百问_06数据结构(018)_多维数组如何储存在内存中

点击进入_更多_Java千百问 1.多维数组如何储存在内存中 了解一维数组如何储存看这里:java数组如何存储在内存中 从底层来看,数组元素可以存放引用类型,数组也是引用类型的一种.也就是说,在数组元素的内部还可以包含数组(如int[][] numbers = new int[length][]),即二维数组可当作一维数组(数组长度为length)来处理. 了解数组和普通引用对象在内存中的区别看这里:数组和普通对象的引用变量有什么区别 由此我们得出结论: 任何多维数组(维度为n,n>1)都可以当

数组及其在内存中的分配

1.一维数组 ● 数组概念:数组是储存同一种数据类型多个元素的集合.也可以看成是一个容器.它既可以存储基本数据类型,也可以存储引用数据类型. ● 定义格式1: 数据类型[] 数组名:       格式2: 数据类型 数组名[]; ● 数组的初始化.动态初始化 数组的初始化:数组必须先初始化,然后才能使用,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值 初始化分类: (1)动态初始化:只指定长度,由系统给出初始化值: (2)静态初始化:给出初始化值,由系统决定长度. 注意:这两种方式只能

C语言之查看数据在内存中表现形式

#include<stdio.h> void viewRAM(); void main() { viewRAM(); } //查看内存,打印内存地址 void viewRAM() { int b[5] = { 1, 2, 3, 4, 5 }; //打印内存地址 printf("%x", b); //注意:数组在内存中连续排列的 system("pause"); } 1,在打印内存地址代码后面,右键. 2,选择断点,插入断点. 3,这时断点已经生效. 4,