我们参加Java培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。
本文列举的技术问题有:
更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~
问题一:ArrayList如何删除数据?
A:
ArrayList删除数据时同样使用拷贝数组的方式,将要删除的位置之后的所有元素拷到当前位置,最后再对最后一个位置的数据设置为null,交给gc来回收。这种删除,其实就是覆盖,如果数据量大,那么效率很低。
问题二:ArrayList适合做队列吗?
A:
队列需要遵循先进先出的原则,如果从ArrayList的数组头部入队列,数组尾部出队列,那么对于入队列时的操作,会涉及大数据量的数组拷贝,十分耗性能。队头队尾反一反也是一样,因此ArrayList不适合做队列。
问题三:数组适合做队列吗?
A:
ArrayBlockingQueue环形队列就是用数组来实现的。ArrayBlockingQueue的存和取操作的索引是在当索引值等于容量值时,将索引值设置为0实现环形队列的效果,因此在这种情况下,数组适合做队列。
问题四:ArrayList和LinkedList两者的遍历性能孰优孰劣?
A:
ArrayList的遍历性能明显要比LinkedList好,因为ArrayList存储的数据在内存中时连续的,CPU内部缓存结构会缓存连续的内存片段,可以大幅降低读取内存的性能开销。
更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~
页面更新:2024-02-18
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号