Java基础笔记(一)深入Java数组

Java基础笔记(一)深入Java数组

[TOC]

1、数组的定义与初始化

在Java中,数组也是一种数据类型,而且是一种<u>引用数据类型</u>。

定义数组

type[] arrayName;  // 建议使用这种形式
type arrayName[];

注意:定义一个数组时,仅仅是定义了一个引用变量(也就是一个指针),它还未指向任何有效的内存,因此,定义数组时不能指定数组的长度。

img


2、数组在内存中的运行机制

数组是一种引用数据类型,所以数组变量只是一个引用。通过这个引用访问它所指向的有效内存(数组对象本身)。

通常,如果数组引用变量是一个局部变量,它会被存储在栈(stack)内存中,而实际的数组对象被存储在堆(heap)内存中,如下图所示:

img

下面看一个例子:

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

img

从上面的例子可以看出,Java的引用类型就相当于C/C++中的指针类型。


3、栈内存与堆内存

栈内存:当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,内存栈也将自然销毁。

堆内存:当我们在程序中创建(new)一个对象时,该对象会被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。

操作数组的工具类:java.util.Arrays

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容