数组的内存解析堆栈分析(值传递,地址传递)
内存解析
解析 | |
---|---|
int [ ]a | 定义了数组变量a,并没有分配内存空间 |
a=new int[3] | 分配连续内存空间,可以存放3个int类型的元素 12个字节 |
直接输出打印 | 打印的是地址信息 |
内存解析堆和栈
在java中,内存分为两种,堆内存和栈内存。
什么是堆内存?
主要用来存储java中的对象和数组,如new一个对象的时候,在堆内存中就会开辟一个空间,用来存放。
堆内存的特点:
- 先进先出,后进后出原则
- 可以动态的分配内存的大小,在运行时分配内存
堆内存的缺点:
因为需要动态的分配内存,速度慢。
什么是栈内存?
只是用来执行程序用的,主要定义基本数据类型的变量,或者对象的引用。
栈内存的特点:
- 先进后出,后进先出(和瓶子里面装水一样)
- 存取速度快
- 栈内存中的数据可以被共享
栈内存的缺点: