首页 > 系统相关 >一维数组内存分析

一维数组内存分析

时间:2023-03-31 23:13:53浏览次数:45  
标签:arr 一维 System 内存 数组 println out

Java虚拟机的内存划分

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

区域名称

作用

虚拟机栈

用于存储正在执行的每个Java方法的局部变量表等。局部变量表存放了编译期可知长度<br/>的各种基本数据类型、对象引用,方法执行完,自动释放。

堆内存

存储对象(包括数组对象),new来创建的,都存储在堆内存。

方法区

存储已被虚拟机加载的类信息、常量、(静态变量)、即时编译器编译后的代码等数据。

本地方法栈

当程序中调用了native的本地方法时,本地方法执行期间的内存区域

程序计数器

程序计数器是CPU中的寄存器,它包含每一个线程下一条要执行的指令的地址

 

一维数组在内存中的存储

一个一维数组内存图newint[3];

      System.out.println(arr);//[I@5f150435

数组下标为什么是0开始:因为第一个元素距离数组首地址间隔0个单元格。

两个一维数组内存图

两个数组独立

    int[] arr = new int[3];
    int[] arr2 = new int[2];
    System.out.println(arr);
    System.out.println(arr2);

两个变量指向一个一维数组

两个数组变量本质上代表同一个数组。

    // 定义数组,存储3个元素
    int[] arr = new int[3];
    //数组索引进行赋值
    arr[0] = 5;
    arr[1] = 6;
    arr[2] = 7;
    //输出3个索引上的元素值
    System.out.println(arr[0]);
    System.out.println(arr[1]);
    System.out.println(arr[2]);
    //定义数组变量arr2,将arr的地址赋值给arr2
    int[] arr2 = arr;
    arr2[1] = 9;
    System.out.println(arr[1]);

标签:arr,一维,System,内存,数组,println,out
From: https://www.cnblogs.com/wdh01/p/17205186.html

相关文章

  • 总结的面试题、数组下标为什么从0开始、数组名中存储的是什么、数组的元素如何存储
    系列文章目录文章目录系列文章目录第一题第二题第一题详细解答链接:https://mp.weixin.qq.com/s/N1Mj3DLbFkZeT5hVR05eNA第二题数组的存储:1、数组下标为什么从0开始?下标表示的是这个元素的位置距离首地址的偏移量2、数组名中存储的是什么数组名中存储的是数组在堆中一整块区域......
  • 力扣---剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。 示例:输入:nums= [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4]也是正确的答案之一。 提示:0<=nums.length<=500000<=nums[i]<=10000来源:力扣(LeetCode)链接:ht......
  • 华为OD机试 合并数组
    本期题目:合并数组题目现在有多组整数数组,需要将他们合并成一个新的数组,合并规则:从每个数组里按顺序取出固定长度的内容,合并到新的数组。取完的内容会删除掉,如果该行不足固定长度,或者已经为空,则直接取出剩余部分的内容放到新的数组中继续下一行。输入第1行为每次读取的固......
  • 【Java】删除String数组中的所有空值
    1、封装一个方法/****去除String数组中的空值*/privateString[]deleteArrayNull(Stringstring[]){StringstrArr[]=string;//step1:定义一个list列表,并循环赋值ArrayList<String>strList=newArrayList<String>();......
  • 洛谷P3374 【模板】树状数组 1-(单点修改,区间查询)
    题目描述如题,已知一个数列,你需要进行下面两种操作:将某一个数加上 x求出某区间每一个数的和输入格式第一行包含两个正整数 n,m,分别表示该数列数字的个数和操作的总个数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来 ......
  • 洛谷P3368 【模板】树状数组 2-(区间修改,单点查询)
    题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上 x;求出某一个数的值。输入格式第一行包含两个整数 N、M,分别表示该数列数字的个数和操作的总个数。第二行包含 N 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来......
  • C语言编程练习_查找数组中不重复的数字
    题目描述:给定一个整形数组空间arr,数据中包含两个一样的数字若干,只有一个数字是单独一个。设计一个函数把这个出现一次的数字返回出来。 解决方案一:穷举法:假设arr数组中的每个元素都是重复的。也可能是不重复的(效率差)#include<stdio.h>intfun1(intarr[],intlen){  ......
  • 209. 长度最小的子数组
    力扣题目链接给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥target 的长度最小的 连续子数组 [numsl,numsl+1,...,numsr-1,numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例1:输入:target=7,nums=[2,3,1,2,4......
  • day31 打卡455.分发饼干 376. 摆动序列 53. 最大子数组和
    day31打卡455.分发饼干376.摆动序列53.最大子数组和455.分发饼干455题目链接classSolution{publicintfindContentChildren(int[]g,int[]s){intcount=0;Arrays.sort(g);Arrays.sort(s);intgIndex=0;ints......
  • 什么是内存泄漏?哪些情况造成内存泄露?
    内存泄漏是指:一块被分配的内存既不能使用又不能回收,直到浏览器进程结束;以下列举内存泄漏的情况: <body>  <divclass="main">   <divclass="test">天</div>   <divclass="item">天</div>   <divclass="item">向<......