NO.3数组

为什么会将数组这个东西挑出来单独讲呐,数组这个东西嘛,它就太重要了。其实从用处来讲的话,它就是一个装东西的容器,如果你们都是有基础的,那你肯定学过我们的JSON串,它只定义了两个东西:数组和对象。所以他们的组合就很简单,对象数组–[{}],数组对象{[]},而我们最常用的就是什么呐,对象数组,将一个个的对象装入数组。所以这个容器真的就非常的简便、非常的好用,甚至嗨给你索引,嗨,真是个宝藏女孩!(我又来了,呜呜呜呜呜)。

言归正传,数组没什么好讲的,容器!装东西的容器

一个容器没啥好讲的嘛!嗨呀!但是,就是这样的一个容器,会衍生出非常多关于存储查询的算法,以最快啊、最不消耗cpu啊查询到我们所需要的数据。这是个大学问(因为我很捞),所以,我和大家一起出门右转去面试网管了,哈哈哈哈。我们数组呐,也作为我们的底层去实现了我们的List以及Hash吗,嗨,忘记了,写到那章的时候给大家详解一下。

1.存储结构

既然是个容器,那我们就讲讲存储结构吧。我记得no.2的时候讲过,引用数据类型有:类,接口以及数组,那么我们的数组的具体的数据是装在堆当中的,而栈当中只是装了它的地址,对应的是我们堆当中所在的位置,还是图解一下
NO.3数组如果看不懂,emmm,可以选择不看,哈哈哈哈哈哈,反正这个JVM内部结构确实比较复杂,实在不能理解的话也能做开发,但是我还是推荐把JVM给整活,整活了你写代码才会有清晰的思路,确定自己的数据到底是在哪里,它传去传来的到底传的啥。

2.参数传递

2.1作为方法参数
参数传递这个东西,非常的常见,但是当我们使用的数组的时候,嗨,我们传递是啥呐?前面刚说了我们数组的存储分为地址和地址所对应的值,那么当我们参数传递的时候,到底是传的地址让它自己去找值呐,还是说我传递的是地址背后所对应的值呐?

还是图解

NO.3数组我们可以清晰的看出,我们的方法都是从方法区压入到我们的方法栈,既然是栈,我们会先进后出,也就是当我们按照顺序压入栈时,main主方法是最后执行,而其余供我们主方法调用的方法都会进行初始化。

当我们初始化后,主方法new了数组,我们单纯的保存了数组的地址,然后将其值放入了堆内存空间,当我们主方法调用方法时,我们只是将地址传递,方法会自己其找地址对应的值,当主方法执行结束,清楚方法栈空间,over。

2.2作为返回值

话不多说,直接上图

NO.3数组
最后我们可以看出,我们还是一样的将数组的地址进行传递

那么!!!!!

规律:
基本数据类型,传递的是值;引用数据类型,传递的是地址。

小结

大概我们的数组就这么多,什么二维数组啥的我就不说了,也是地址地址地址,像那些个算法的话建议自己qioqio,还是得清楚的记得基本数据类型以及我们的引用数据类型的区别。哦,还有一点就是,哈哈哈哈哈,数组我们在后期的话用的不是很多,它会作为底层构建我们的单列集合,那玩意用的多。

相关文章:

  • 2021-10-24
  • 2022-01-16
  • 2022-01-12
  • 2021-11-22
  • 2022-01-13
  • 2021-12-10
  • 2021-11-25
  • 2022-01-21
猜你喜欢
  • 2022-12-23
  • 2021-11-16
  • 2021-05-28
  • 2021-12-28
  • 2021-05-18
  • 2021-08-11
相关资源
相似解决方案