首页 > Java资讯 > Java数组面试题(附答案)

Java数组面试题(附答案)

更新时间:2020-10-14 17:22 浏览115次 来源:动力节点

数组是学习数据结构以及算法的基础,尽管java数组看起来非常的简单、基础,但是却是经常出现在java面试题中的,所以java数组面试题是需要在面试前好好准备的,下面整理了面试中出现频率较高的java数组面试题,希望对大家能够有所帮助。


1、什么是java数组?

答:数组其实就是一个存储数据长度固定的容器,它可以保证多个数据的数据类型要一致。有三种的定义方式:

int[] arr = new int[6];这是定义存储6个整数的数据容器。

int[] arr = new int[]{1,2,3,4,5};这是定义存储1-5整数的数组容器。

int[] arr = {1,2,3,4,5};定义了1-5的整数的数组容器,开实际中较为常用的一种方式。


2、Java数组的特性有什么?

答:下标从0开始;线性表数据结构;一组连续的内存空间来存储一组具有相同类型的数据。


3、在java中,声明一个数组过程中,是如何分配内存的?

答:(1)当声明数组类型变量时,为其分配了32位引用空间,由于未赋值,因此不指向任何对象;

(2)当创建了一个数组对象(也就是new出来的)并将其地址赋值给了变量,其中创建出来的那几个数组元素相当于引用类型变量,因此各自占用32位的引用空间并按其默认初始化规则被赋值为null;

(3)程序继续运行,当创建新的对象并将其地址赋值给各数组元素,此时堆内存就会有值了。


4、如何访问数组?

答:我们可以通过索引,也就是每一个存储到数组的元素,都会自动地拥有一个编号,编号是从0开始,这个自动编号称为数组索引(index),格式是数组名[索引]。数组的长度是固定的,可以通过数组名.length来获取数组的长度。


5、数组获取最大元素的步骤是怎样的?

答:从数组所有元素中找出最大值,实现的思路是这样的,首先定义一个变量用于保存数组0索引上的元素。

然后遍历数组,获取数组的所有元素后就将元素的保存数组0索引上的值变量进行比较。

如果数组元素的值大于了变量的值,变量记录住新的值。

数组循环遍历结束,变量保存的就是数组中最大的值了。

image.png


6、数组的遍历的方式,并举例

答:数组遍历就是数组中的每一个元素分别取出来,遍历可以说是数组操作的基石,常用的遍历方式就是使用for循环如下图:

image.png


7、数组如何提高效率?

答:将多次删除操作中集中在一起执行,可以先记录已经删除的数据,但是不进行数据迁移,而仅仅是记录,当发现没有更多空间存储时,再执行真正的删除操作,这样减少数据搬移次数节省耗时。

这也是跟 JVM 标记清除垃圾回收算法的核心思想相似。标记-整理垃圾回收算法,在垃圾收集时此算法分为“标记”、“清除”两个阶段,先标记出需要回收的对象,再统一清除标记的对象。清除之后会产生大量不连续的内存碎片。在标记完成之后让所有存活的对象都向一端移动,然后直接清理掉边界以外的内存。


8、使用数组还是容器?

答:数组先指定容器大小,容器ArrayList可以动态扩容,并且封装了好多方法,一旦超过存储容量,扩容时比较耗时,因为涉及内存申请和数据复制搬移到扩容后的数组。如果已知数据大小,且涉及的数据操作比较简单,可以用数组。比如已知一万条数据要存入 ArrayList,我们就可以事先指定容器大小。


以上就是这篇文章为朋友们整理的java数组面试题,希望大家可以对照着给出的参考答案好好学习数组的知识。数组是最基础的一种数据结构,java零基础的新手小白想要学好java,在学习的初期就要掌握java数组的知识,这样会为后面的学习打好基础。

热门课程推荐

全部班型支持免费试学

动力节点在线报名表(此信息已加密,请放心填写)

返回顶部