牛客网---Java题库(21~30)
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)相关推荐
- python爬取学校题库_如何使用 Python 爬虫爬取牛客网 Java 题库?
[原文链接]http://www.changxuan.top/?p=146 由于"打怪"失败,最近一直在牛客网上刷题复习备战春招.其中有个 Java专题复习题库,我刷着刷着就想把它 ...
- 如何使用 Python 爬虫爬取牛客网 Java 题库?
[原文链接]http://www.changxuan.top/?p=146 由于"打怪"失败,最近一直在牛客网上刷题复习备战春招.其中有个 Java专题复习题库,我刷着刷着就想把它 ...
- 牛客网---Java题库(11~20)
11.进程和线程的区别是什么? 1.地址空间和其他资源:进程间相互独立,同一进程的各线程间共享. 2.通信:进程间通信PIC,线程间可以直接读写进程数据段(如全局变量)来进行通信(需要通过进程同步和互 ...
- 牛客网---Java题库(1~10)
1.什么是JAVA虚拟机?为什么JAVA被称作平台无关的编程语言? java虚拟机是一个可以执行java字节码的虚拟机进程.java源文件被编译成能够java虚拟机执行的字节码文件.java被设计成允 ...
- 牛客网sql题库(1-30题)—— 个人答案与过程解析
本篇博客分享一下我在牛客网sql题库刷题时,自己敲出来的结果.结果均通过了牛客网的结果验证. 具体的题目就不放在博客中了,感兴趣可以自行去搜索牛客网,找到sql题库在线编程 每道题下面都有我自己写的题 ...
- 牛客网-SQL题库笔记
牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...
- 牛客网数据开发题库_牛客网SQL题库NO.32~40
不要问为什么没有31题,大概被牛客吞掉了吧,哈哈哈哈 SQL 32[简单] 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 CREA ...
- Python每日一练——第7天:从入门到实践四十招(牛客网新题库)
文章目录 1. 单词造句 2. 重复出现的字符串 3. 幸运数字大小 4. 九九乘法表 5. 判断素数 6. 拯救被污染的字符串 7. 程序员节 8. 密码游戏 9. 牛牛学字母 10. 如何让刷题更 ...
- Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer
剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...
最新文章
- Ubuntu MySQL
- idl结果显示窗口如何缩小_IDL操作步骤
- POJ 3041	Asteroids 二分图匹配
- 整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例
- (十五)非常全面的TCPIP面试宝典-进入大厂必备总结
- Spark数据本地性
- Java9的GI垃圾回收器
- C/C++学校运动会管理系统
- oppo A3怎么刷机oppo A3的刷机教程 oppo A3完美解除账号锁
- 总结oninput、onchange与onpropertychange事件的用法和区别
- 基于内容的图像检索系统设计与实现-java+mysql
- 卸载Linux原生java_卸载linux自带openjdk并安装sun jdk
- 报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x93 in position 1721: illegal multibyte sequen
- ERROR! MySQL is not running, but PID file exists
- Android 9.0 10蓝牙音乐获取歌手、歌曲等信息
- 安卓app开发菜鸟教程!淘汰了80%的Android面试者,满满干货指导
- unity移动端材质丢失呈洋红色问题记录
- Python爬虫:爬取某鱼颜值主播图片并保存到本地升级版!
- PS cc 2018分享
- 语音消息以及未读提醒连续播放