数组的内存解析堆栈分析(值传递,地址传递)

本文深入探讨了Java中的内存解析,包括堆内存和栈内存的特性。堆内存用于存储对象和数组,而栈内存则用于基本数据类型和对象引用。文章通过值传递和地址传递两个概念,解释了如何在方法调用中处理变量。值传递确保方法内部的变量变化不会影响原始值,而地址传递则可能导致多个引用指向同一对象时,所有引用的同步变化。
摘要由CSDN通过智能技术生成

数组的内存解析堆栈分析(值传递,地址传递)

内存解析

解析
int [ ]a 定义了数组变量a,并没有分配内存空间
a=new int[3] 分配连续内存空间,可以存放3个int类型的元素
12个字节
直接输出打印 打印的是地址信息

图1


内存解析堆和栈
在java中,内存分为两种,堆内存和栈内存。

什么是堆内存?
主要用来存储java中的对象和数组,如new一个对象的时候,在堆内存中就会开辟一个空间,用来存放。

堆内存的特点:

  1. 先进先出,后进后出原则
  2. 可以动态的分配内存的大小,在运行时分配内存

堆内存的缺点:
因为需要动态的分配内存,速度慢。

什么是栈内存?
只是用来执行程序用的,主要定义基本数据类型的变量,或者对象的引用。

栈内存的特点:

  1. 先进后出,后进先出(和瓶子里面装水一样)
  2. 存取速度快
  3. 栈内存中的数据可以被共享

栈内存的缺点:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值