java经典面试题及答案,java面试常见题
一、什么是数组?什么是链表?
(相关面试问题推荐:java面试问题)
数组就像是被编号站成一排的人。很容易找到第10个人,根据人数可以很快找到。然而,插入和删除是缓慢的。当你想在某个位置插入或删除一个人时,你后面的人的号码必须改变。当然,加入或者删除的人永远是最后一个。
链表是前一个元素的引用指向下一个元素的存储结构,链表通过指针连接元素与元素;
链表就像一个人手拉手站成一个圈。找到第10个人不容易。你必须通过第一个人的号码。但是插入和删除很快。插入时,只需解开两个人的手,重新握住新加的人的手。删除同样的原因。
在Java中,ArrayList和LinkedList分别由数组和链表在内部实现。
二、数组和链表有什么区别
不同:链表是链式存储结构;数组是一种顺序存储结构。
链表是用来连接元素与元素的,而数组是按顺序存储所有元素的。
(相关教程推荐:java入门教程)
相比数组,在链表中插入和删除元素更简单,不需要移动元素,更容易实现长度扩展,但是找到一个元素比较困难。
在数组中查找元素很简单,但是插入和删除却很复杂。因为最大长度需要在重编程开始时指定,当达到最大长度时,就没有链表那样方便扩展长度了。
相同:两种结构都可以实现数据的顺序存储,构造的模型是线性的。
三、java集合和数组的特点
数组特性:固定大小,只能存储相同数据类型的数据。
集合特性:大小可以动态扩展,可以存储各种类型的数据。
(相关视频教程推荐:java视频教程)
四、LinkedList底层实现方式
LinkedList是通过双向链表实现的。由于是用链表实现的,所以随机访问效率比ArrayList低,顺序访问效率更高。每个节点都有一个前任(指向前一个节点的指针)和一个继任者(指向后一个节点的指针)。效果如下:
如何解决写爬虫IP受阻的问题?立即使用。
1.使用for适用于循环ArrayLIst和array,大量循环LinkedList循环时程序会卡死。For适用于循环数组结构,由下标遍历。
2.使用foreach适合循环LinkedList,使用双向链表结构应该使用foreach循环。以上是java经典面试题集(六)的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。