首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试常被问到的 Java 集合知识点(详细)

    ArrayList 一般应用于查询较多但插入以及删除较少情况,如果插入以及从删除较多则建议使用 LinkedList 是否支持快速随机访问:LinkedList 不支持高效的随机元素访问,而 ArrayList...LinkedList 提供了 2 个构造器,因为基于链表,所以也就没有初始化大小,也没有扩容的机制,就是一直在前面或者后面插插插~~ ? 插入 ArrayList 的 add() 方法 ?...但取模的计算效率没有位运算高,所以这是是一个优化。假设 h = 185,table.length-1 = 15(0x1111),其实散列真正生效的只是低 4bit 的有效位,所以很容易碰撞。 ?...ConcurrentHashMap 在 JDK8 中进行了巨大改动,光是代码量就从1000多行增加到6000行!...list 可以删除吗,遍历的时候可以删除吗,为什么 Java快速失败(fail-fast)和安全失败(fail-safe)区别 快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改

    87030

    记一次高级java开发的面试题总结

    ArrayList和LinkedList底层实现原理是什么? 答:List常用的实现类有ArrayList和LinkedList。...ArrayList底层原理是数组+动态扩容机制实现的,LinkedList底层原理是用Node结点形成的链表实现的。 6、在开发中如何选择使用ArrayList和LinkedList?...如果有极端情况下没有执行到解锁的操作,可以通过key对应的时间戳判断是否超时,然后使用GETSET命令去进行解锁,通过判断返回的时间戳是否是超时的key对应的时间戳,确认是否成功上锁。...13、MySQL性能优化的策略有哪些? ①复杂的多表查询可以拆成多句简单查询。 ②返回尽量少的列,按需返回,严禁使用select *。 ③尽量使用索引列做查询条件和排序条件。...雪花算法为什么主键生成有两种类型这个问题没有答出来,还有分布式锁长时间阻塞的解决方案没有详细展开讲。 更多的java技术分享,关注一下吧。

    59920

    Java基础面试题-可能读了个假书?

    Java集合 ArrayList和LinkedList 线程安全 ArrayList和LinkedList都是不同步的,也就是线程不安全,vector是同步的,线程安全。...底层数据结构 ArrayList底层使用的是Object数组,LinkedList底层使用的是双向链表。...插入和删除元素 ArrayList采用数组存储,所以插入和删除受元素位置影响;LinkedList采用链表存储,所以插入和删除元素时受到元素位置影响。...快速随机访问 快速随机访问是通过元素的序号快速获取元素对象,通过底层数据就够就知道了,ArrayList支持,LinkedList不支持。...内存空间占用 ArrayList的空间主要浪费在了list列表的结尾会预留一定的容量空间,而LinkedList主要花费在每一个元素都要比ArrayList更多的空间,因为存前驱后继节点及数据等。

    1K50

    「Java面试题精华集」1w字的Java集合框架篇(2020最新版)附PDF版 !

    Arraylist 与 LinkedList 区别?...实现了 RandomAccess 接口, 而 LinkedList 没有实现。...为什么呢?我觉得还是和底层数据结构有关!ArrayList 底层是数组,而 LinkedList 底层是链表。数组天然支持随机访问,时间复杂度为 O(1),所以称为快速随机访问。...另外,在单线程下,如果在遍历过程中对集合对象的内容进行了修改的话也会触发 fail-fast 机制。 “注:增强 for 循环也是借助迭代器进行遍历。...所以,自己对于这块小知识点进行了简单的总结。 简介 Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个 List 集合。

    1.3K20

    50道Java集合经典面试题(收藏版)

    Arraylist与LinkedList区别 可以从它们的底层数据结构、效率、开销进行阐述哈 ArrayList是数组的数据结构,LinkedList是链表的数据结构。...插入、删除数据时,LinkedList的效率比较高,因为ArrayList要移动数据。 LinkedList比ArrayList开销更大,因为LinkedList的节点除了存储数据,还需要存储引用。...Collections.sort和Arrays.sort的实现原理 Collection.sort是对list进行排序,Arrays.sort是对数组进行排序。...快速失败 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。...针对面试题:线程池都有哪几种工作队列?

    88911

    Java数据结构:从基础到高级应用

    常见的List实现包括ArrayList和LinkedList。以下是一个使用ArrayList的示例: 3. 集合(Set) Set接口表示一组不允许重复元素的数据结构。...Java提供了java.util.Stack类,但通常建议使用Deque接口的ArrayDeque来模拟堆栈操作: 6....例如,ArrayList和Arrays类提供了用于搜索和排序的方法,如Collections.sort()和Arrays.binarySearch()。 10....数据结构的优化 数据结构的选择和使用可以对性能产生重大影响。在实际应用中,需要考虑数据结构的时间复杂度和空间复杂度,并进行优化。...例如,使用HashSet进行快速查找,或使用StringBuilder进行字符串拼接以提高效率。 结语 数据结构是计算机科学和软件开发中的核心概念之一。

    19010

    【Java】List、Set、数据结构、Collections

    2.2 常见的数据结构 第二章 List集合 1.1 List接口介绍 1.2 List接口中常用方法 第三章 List的子类 3.1 ArrayList集合 3.2 LinkedList集合 第四章...当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。...许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的。 3.2 LinkedList集合 java.util.LinkedList集合数据存储的结构是链表结构。...list);        System.out.println(list);   } } 结果: [5, 222, 1, 2] [1, 2, 5, 222] 代码演示之后 ,发现我们的集合按照顺序进行了排列...实现此接口的对象列表(和数组)可以通过Collections.sort(和Arrays.sort)进行自动排序,对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。

    46030

    Java集合--List

    Map同属于java.util包中,是集合的一部分,但与Collection是相互独立的,没有任何关系。...究其原因,可能是经过JDK近几年的更新发展,对于数组复制的实现进行了优化,以至于ArrayList的性能也得到了提高。 ?...为什么ArrayList不想对elementData属性进行序列化呢?...当我们进行序列化时,并不会只序列化其中一个元素,而是将整个数组进行序列化操作,那些没有被元素填充的位置也进行了序列化操作,间接的浪费了磁盘的空间,以及程序的性能。...后来发现,JDK1.7之前的版本是环形链表,而到了JDK1.7以后进行了优化,变成了直线型链表结构; 集合基础结构 在LinkedList中,内部类Node对象最为重要,它组成了LinkedList集合的整个链表

    3K70

    Java集合中的Map接口

    对集合List进行排序,再定义一个LinkedHashMap,遍历集合List中的元素放到LinkedHashMap中,也就是说并没有一个类似Collections.sort(Map, Comparator...comparingByKey(Comparator) //利用key值进行排序,但key值并没有实现Comparable接口,需要传入一个Comparator比较器。   ...comparingByValue(Comparator) //利用value值进行排序,但value值并没有实现Comparable接口,需要传入一个Comparator比较器。   ...那么为什么会出现get方法是使用Object类型,而不是泛型呢?难道JDK的作者没有想到这一点吗?明明能在编译时就能发现的问题,为什么要在运行时再去判断?   ...(arrayList, "this is list"); 4 System.out.println(hashMap.get(arrayList)); 5 LinkedList linkedList =

    1.8K40
    领券