• Java基础回顾-数组的内存结构/常用方法


    一、数组元素的默认初始值

    数组元素类型默认初始值
    byte0
    short0
    int0
    long0L
    float0.0F
    double0.0
    char0或’\u0000‘
    booleanfalse
    引用数据类型null

    二、内存的简化结构

    内存结构可分为三部分:

            :存放局部变量(例如方法内的变量)。

            堆:存放new出来的结构,如类的对象数组等等。

            方法区:包括静态域、常量池等。

    三、一维数组的内存解析

            如下图代码所示,在 main() 方法内创建了两个一维数组:arr1arr,其实就是两个指针变量。它们两个在中存储,分别指向数组第一个元素,也就是说它们存放的是地址值

            如果我给arr1重新new了一个数组,那中就会在新的地址(0x5566)上划分一块数据区域,arr1会指向这个新区域,而舍弃掉原来的那个区域(0x12ab)。

     四、二维数组的内存解析

            对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组array0的元素而存在。其实,从数组底层的运行机制来看,没有所谓多维数组,本质上就是套娃。

            同样看下面的图,在main() 中创建arr1数组,指定4行,但没有指定列。那就在中创建一个指针变量arr1,中创建一个存放4个数据的区域(0x1234),让arr1指向这个区域。

            接下来每new一个,就在中创建出一块数据区域,并让0x1234区域中的元素指向新区域。这样的话,arr1 和 arr1[i] 中存放的就都是地址了。这不就是套娃嘛? 

    五、数组常用的几个方法 

            首先 import java.util.Arrays

            1. Array.equals(int[] a,int[] b)     判断两个数组是否相等

            2.Arrays.toString(int[] a) 数组内容转为String格式输出

            3 Array.fill(int[] a,int val) 将指定值填充到数组之中

            4 Array.sort(int[] a) 对数组进行排序

            5 Array.binarySearch(int[] a,int key) 对排序后的数组二分查找指定的值

  • 相关阅读:
    导出微信通讯录
    NoSQL之redis缓存雪崩、穿透、击穿概念解决办法
    【星海出品】SDN neutron (四) 流分析
    Ubuntu20.04安装EasyConnect后兼容性问题无法启动的解决方法
    freeswitch 播放远程文件的流程
    conda操作总结,pip操作总结,python包安装
    第143篇:手写vue-router,实现router-view
    get与post的区别
    IFD-x 微型红外成像仪探测距离说明
    vivado产生报告阅读分析10-时序报告6
  • 原文地址:https://blog.csdn.net/weixin_62427168/article/details/125429795