Java中数组的内存分析

技术文章第一时间送达!

正文

引言:

墨白在文末给大家准备了程序员的适用壁纸,需要的小伙伴自取,今天的内容是给大家聊聊Java中数组的内存分析和原理,很多朋友可能已经忘记了,毕竟这是非常基础的点了,这次算是给大家复习了吧!

内存简介

内存是计算机中的一个重要原件,是一种临时存储区域,作用是运行程序。我们程序员编写的程序是存放在硬盘中的,但是在硬盘中的程序它是不会运行的,必须放进内存中才能运行,每个程序运行完毕后会自动清空内存。

先看下Java中的数组内存图

Java虚拟机的内存划分

为了提高运算效率,Java虚拟机就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

JVM的内存划分:

我们作为Java攻城狮,需要重点关注的只有三个地方,方法栈,方法区,和堆内存,这三个内容需要我们重点关注!!!

一个数组在内存中的内存图分析以上方法执行,输出的结果是[I@38cccef,这个是什么呢?是数组在内存中的地址。new出来的内容,都是在堆内存中存储的,而方法中的变量arr保存的是数组的地址。

输出arr[0],就会输出arr保存的内存地址中数组中0索引上的元素

两个数组内存图

两个变量指向一个数组

两个变量都指向了同一个数组,无论通过哪个变量操作数组,对方都会受到影响。

结语:Java虚拟机内存图对于理解Java程序非常的关键,大家应该熟悉数组代码的内存机制,对于学习Java技术帮助很大。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191127A03Z8M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券