更新时间:2020-10-14 17:22:29 来源:极悦 浏览3449次
数组是学习数据结构以及算法的基础,尽管java数组看起来非常的简单、基础,但是却是经常出现在java面试题中的,所以java数组面试题是需要在面试前好好准备的,下面整理了面试中出现频率较高的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的整数的数组容器,开实际中较为常用的一种方式。
答:下标从0开始;线性表数据结构;一组连续的内存空间来存储一组具有相同类型的数据。
答:(1)当声明数组类型变量时,为其分配了32位引用空间,由于未赋值,因此不指向任何对象;
(2)当创建了一个数组对象(也就是new出来的)并将其地址赋值给了变量,其中创建出来的那几个数组元素相当于引用类型变量,因此各自占用32位的引用空间并按其默认初始化规则被赋值为null;
(3)程序继续运行,当创建新的对象并将其地址赋值给各数组元素,此时堆内存就会有值了。
答:我们可以通过索引,也就是每一个存储到数组的元素,都会自动地拥有一个编号,编号是从0开始,这个自动编号称为数组索引(index),格式是数组名[索引]。数组的长度是固定的,可以通过数组名.length来获取数组的长度。
答:从数组所有元素中找出最大值,实现的思路是这样的,首先定义一个变量用于保存数组0索引上的元素。
然后遍历数组,获取数组的所有元素后就将元素的保存数组0索引上的值变量进行比较。
如果数组元素的值大于了变量的值,变量记录住新的值。
数组循环遍历结束,变量保存的就是数组中最大的值了。
答:数组遍历就是数组中的每一个元素分别取出来,遍历可以说是数组操作的基石,常用的遍历方式就是使用for循环如下图:
答:将多次删除操作中集中在一起执行,可以先记录已经删除的数据,但是不进行数据迁移,而仅仅是记录,当发现没有更多空间存储时,再执行真正的删除操作,这样减少数据搬移次数节省耗时。
这也是跟 JVM 标记清除垃圾回收算法的核心思想相似。标记-整理垃圾回收算法,在垃圾收集时此算法分为“标记”、“清除”两个阶段,先标记出需要回收的对象,再统一清除标记的对象。清除之后会产生大量不连续的内存碎片。在标记完成之后让所有存活的对象都向一端移动,然后直接清理掉边界以外的内存。
答:数组先指定容器大小,容器ArrayList可以动态扩容,并且封装了好多方法,一旦超过存储容量,扩容时比较耗时,因为涉及内存申请和数据复制搬移到扩容后的数组。如果已知数据大小,且涉及的数据操作比较简单,可以用数组。比如已知一万条数据要存入 ArrayList,我们就可以事先指定容器大小。
以上就是这篇文章为朋友们整理的java数组面试题,希望大家可以对照着给出的参考答案好好学习数组的知识。数组是最基础的一种数据结构,java零基础的新手小白想要学好java,在学习的初期就要掌握java数组的知识,这样会为后面的学习打好基础。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习