21、lterator和Listlterator的区别是什么?

literator可用来遍历Set和List集合,但是Listlterator只能用来遍历List。

Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。

ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。

22、快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?

fail-fast 和fail-safe是针对多线程安全方面进行考虑的。

fail-fast在访问时不支持对数据进行修改,它是直接对数据进行访问的,当发现数据进行修改时就会抛出Concurrent Modification Exception。

fail-safe在访问时支持其他线程对数据的修改,它将数据拷贝一份进行遍历,不会抛出异常,缺点是若原数据被线程若修改了,拷贝线程并没有被修改。

*23、java中的hashmap的工作原理是什么?

hashmap的底层是用hash数组和单向链表实现的,当调用put()方法时,首先计算key值(键值对)的hashcode,定位到合适的数组索引,然后再在索引的单向链表进行循环遍历用equals比较key是否存在,如果存在则用新的value覆盖原值,如果没有则在单向链表的头部追加。

hashmap的重要属性是capacity和加载因子loadfactor,默认值分布16和0.75,当容器中的元素个数大于capacity*loadfactor时,容器会进行扩容resize为2n。

在初始化时可以对capacity和loadfactor进行修改,通常loadfactor是0.75不会修改,会修改capacity,如果事先知道容器所要存储的元素数量,最后才初始化时修改默认容量capacity。

hashmap源码详解:https://blog.csdn.net/caihaijiang/article/details/6280251

26、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用他们?

ArrayList是Array的加强版,Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。Array的空间大小是固定的,ArrayList是动态增长的,如果空间不够,会动态增长一个比原来大1.5倍的空间。ArrayList会有add removeAll ,返回迭代器iterator()等

27、ArrayList和LinkedList的区别?

ArrayList基于索引的数据接口,它的底层是数组。可以o(1)的时间复杂度进行访问。

LinkedList的插入添加删除速度较快。

LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用一个指针一个是下一个元素。

28、Comparable和Comparator的区别?

两种方式,各有各的特点:使用Comparable方式比较时,我们将比较的规则写入了比较的类型中,其特点是高内聚。但如果哪天这个规则需要修改,那么我们必须修改这个类型的源代码。如果使用Comparator方式比较,那么我们不需要修改比较的类,其特点是易维护,但需要自定义一个比较器,后续比较规则的修改,仅仅是改这个比较器中的代码即可。

29、什么是java的优先级队列(Priority Quene)?

priority Quene就是数据结构中的最小堆,调用remove方法可以得到优先级队列中的最小元素,及堆的根节点。

30、大O符号是什么意思?

大O符号表示一个程序运行时所需要的渐进时间复杂度上界。

牛客网---Java题库(21~30)相关推荐

  1. python爬取学校题库_如何使用 Python 爬虫爬取牛客网 Java 题库?

    [原文链接]http://www.changxuan.top/?p=146 由于"打怪"失败,最近一直在牛客网上刷题复习备战春招.其中有个 Java专题复习题库,我刷着刷着就想把它 ...

  2. 如何使用 Python 爬虫爬取牛客网 Java 题库?

    [原文链接]http://www.changxuan.top/?p=146 由于"打怪"失败,最近一直在牛客网上刷题复习备战春招.其中有个 Java专题复习题库,我刷着刷着就想把它 ...

  3. 牛客网---Java题库(11~20)

    11.进程和线程的区别是什么? 1.地址空间和其他资源:进程间相互独立,同一进程的各线程间共享. 2.通信:进程间通信PIC,线程间可以直接读写进程数据段(如全局变量)来进行通信(需要通过进程同步和互 ...

  4. 牛客网---Java题库(1~10)

    1.什么是JAVA虚拟机?为什么JAVA被称作平台无关的编程语言? java虚拟机是一个可以执行java字节码的虚拟机进程.java源文件被编译成能够java虚拟机执行的字节码文件.java被设计成允 ...

  5. 牛客网sql题库(1-30题)—— 个人答案与过程解析

    本篇博客分享一下我在牛客网sql题库刷题时,自己敲出来的结果.结果均通过了牛客网的结果验证. 具体的题目就不放在博客中了,感兴趣可以自行去搜索牛客网,找到sql题库在线编程 每道题下面都有我自己写的题 ...

  6. 牛客网-SQL题库笔记

    牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...

  7. 牛客网数据开发题库_牛客网SQL题库NO.32~40

    不要问为什么没有31题,大概被牛客吞掉了吧,哈哈哈哈 SQL 32[简单] 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 CREA ...

  8. Python每日一练——第7天:从入门到实践四十招(牛客网新题库)

    文章目录 1. 单词造句 2. 重复出现的字符串 3. 幸运数字大小 4. 九九乘法表 5. 判断素数 6. 拯救被污染的字符串 7. 程序员节 8. 密码游戏 9. 牛牛学字母 10. 如何让刷题更 ...

  9. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

最新文章

  1. Ubuntu MySQL
  2. idl结果显示窗口如何缩小_IDL操作步骤
  3. POJ 3041 Asteroids 二分图匹配
  4. 整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例
  5. (十五)非常全面的TCPIP面试宝典-进入大厂必备总结
  6. Spark数据本地性
  7. Java9的GI垃圾回收器
  8. C/C++学校运动会管理系统
  9. oppo A3怎么刷机oppo A3的刷机教程 oppo A3完美解除账号锁
  10. 总结oninput、onchange与onpropertychange事件的用法和区别
  11. 基于内容的图像检索系统设计与实现-java+mysql
  12. 卸载Linux原生java_卸载linux自带openjdk并安装sun jdk
  13. 报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x93 in position 1721: illegal multibyte sequen
  14. ERROR! MySQL is not running, but PID file exists
  15. Android 9.0 10蓝牙音乐获取歌手、歌曲等信息
  16. 安卓app开发菜鸟教程!淘汰了80%的Android面试者,满满干货指导
  17. unity移动端材质丢失呈洋红色问题记录
  18. Python爬虫:爬取某鱼颜值主播图片并保存到本地升级版!
  19. PS cc 2018分享
  20. 语音消息以及未读提醒连续播放

热门文章

  1. springboot实现拦截器
  2. Javascript原型理解图
  3. js设计模式之Constructor(构造器)
  4. ArcGIS线转面的方法
  5. ECCV 2020 论文大盘点-自动驾驶篇
  6. 如何学习机器学习、看待算法竞赛?粉丝精选留言
  7. ICCV 2019 | ActivityNet 挑战赛冠军方案—时序动作提名,边界匹配网络详解
  8. 尺度不变网络提升人群计数性能(附Github地址)
  9. 计算机网络符号显示叹号,在Win7系统中,电脑网络出现感叹号怎么解决?
  10. 这些Python代码技巧,你肯定还不知道