BAT大厂面试题以及答案(一)
小弟初来乍到,还请大家多多关照。最近自己看到很了很多BAT大厂的面试题,但是只有试题没有相应的答案,每天得花很多时间找答案,所以在这里,我给大家把试题和答案都列出来,希望能对在找工作的同胞们有所帮助哈!
1、ava中==和equals和hashCode的区别
解析:
equals :equals的作用是判断两个对象是否相等,通过判断两个对象的地址是否相同来判断。
hashCode:能够高效率的产生一个离散的int值,通过hashCode()来计算出两个对象的hash值然后进行比较。但是会出现不同的类也会有相同hash值,所以这不是安全、不可靠的。
双等于:一般用于基本类型数据的比较,判断两个值是否相同 ,也可以用于类的比较,同样也是比较两个对象的内存地址。(就是两个对象都是同一个对象),所以在equals没覆盖的情况下,==和equals是等价的。
2、String、StringBuffer、StringBuilder区别
解析
①、执行速度
在这方面运行速度快慢为:StringBuilder > StringBuffer > String
String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
②、线程安全方面
在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的
如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作。所以如果要进行的操作是多线程的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。
③、个人总结
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
3、哪些情况下的对象会被垃圾回收机制处理掉?
解析:
该对象的最后一个引用指向了另一个对象或null
该对象的最后一个引用的作用域结束
4、List,Set,Map的区别
解析:
①、List 集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,例如通过list.get(i)方法来获取集合中的元素;
②、Map 中的每一个元素包含一个键和一个值,成对出现,键对象不可以重复,值对象可以重复;
③、Set 集合中的对象不按照特定的方式排序,并且没有重复对象,但它的实现类能对集合中的对象按照特定的方式排序,例如 Tree Set 类,可以按照默认顺序,也可以通过实现 Java.util.Comparator< Type >接口来自定义排序方式。
5、ArrayList和LinkedList的区别,以及应用场景
解析:
①、区别
ArrayList是基于数组实现,而LinkedList是基于链表实现。 因为数组是基于索引的数据结构,所以当查找元素时会特别方便,其时间复杂度为O(1),但是要插入和删除数据的话开销确是很大的,需要挪动大量数据。而且当插入一定元素后,ArrayList会进行动态扩容操作。而对于链表来说,插入和删除元素确是很容易办到的,只需要改变对应节点的前后指针,其时间复杂度为O(1),而不需要改变数组大小,也不需要搬移挪动元素等。但是如果要查找访问元素的话却需要从头遍历,其时间复杂度为O(n)。此外,相比较于ArrayList,LinkedList需要花费更多的空间来存储节点数据(实际数据+前后节点位置)。
②、应用场景
如果你的程序更多的是进行元素的查找,建议使用ArrayList;如果更多的是进行插入和删除操作,LinkedList会更优。
6、List和Map的实现方式以及存储方式
①、List
常用实现方式有:ArrayList和LinkedList
ArrayList 的存储方式:数组,查询快
LinkedList的存储方式:链表,插入,删除快
②、Map
常用实现方式有:HashMap和TreeMap
HashMap的存储方式:哈希码算法,快速查找键值
TreeMap存储方式:对键按序存放
今天的分享就先这些,接下来每天都会给大家分享新的信息,先谢谢大家的关注!
接下来,给大家送上一个每日笑话,一整天开始打代码?
A:嘿 //是什么意思啊?
B:嘿.
A:呃我问你//是什么意思?
B:问吧.
A:我刚才不是问了么?
B:啊?
A:你再看看记录…
B:看完了.
A:……所以//是啥?
B:所以什么?
A:你存心耍我呢吧?
B:没有啊你想问什么?
……
不断循环之后,A一气之下和B绝交,自己苦学程序。
N年之后,A终于修成正果,回想起B
,又把聊天记录翻出来看,这时,他突然发现B没有耍他……
而他自己也不知道当年他问B的究竟是什么问题……
BAT大厂面试题以及答案(一)相关推荐
- 史上最全 BAT 大厂面试题整理
转载自 史上最全 BAT 大厂面试题整理!(速度收藏) 主要分为以下几部分: (1)java面试题 (2)Android面试题 (3)高端技术面试题 (4)非技术性问题&HR问题汇总 1 ja ...
- 2020最全的BAT大厂面试题整理改版
最全的BAT大厂面试题整理 版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.jianshu.com/p/c70989bd5f29 转载请标明出处: https://www. ...
- 【大牛疯狂教学】2020最全的BAT大厂面试题整理改版
最全的BAT大厂面试题整理 版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.jianshu.com/p/c70989bd5f29 转载请标明出处: https://www. ...
- 腾讯T3手把手教你!2020最全的BAT大厂面试题整理改版
最全的BAT大厂面试题整理 版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.jianshu.com/p/c70989bd5f29 转载请标明出处: https://www. ...
- 大厂面试题含答案(二)
10家大厂面试题精选 2020 年小米精选 50 面试题及答案 1. 协程了解过么? 2. 变量的声明和定义有什么区别 3. sizeof 和 strlen 的区别 4. 一个指针可以是 volati ...
- 大厂面试题含答案(一)
10家大厂面试题精选 2020 年阿里精选面试题及答案 1. 使用 mysql 索引都有哪些原则?索引什么数据结构? B+tree 和 B tree 什么区别? 2. Mysql 有哪些存储引擎?请详 ...
- 全套BAT大厂面试题整理锦集
金三银四是面试求职高峰期,最近有很多网友都在求大厂面试题.发出来分享给大家. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目.熟悉本文中列出的知 ...
- 2022最全的BAT大厂面试题整理及分析
又是一年的金三银四,又到了面试求职高峰期,最近有很多网友都在求大厂面试题.正好我之前电脑里面有这方面的整理,于是就发上来分享给大家. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪. ...
- 总结2022最全的BAT大厂面试题整理及分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k1qxiskF-1660644075912)(https://upload-images.jianshu.io/uplo ...
最新文章
- 中国Nature第一人,居然是清朝的他
- 基于OpenCV Haar实战级联分类器的使用
- 最小二乘法多元线性回归_回归系列(二)| 最小二乘法真有那么复杂吗?
- dash plotly
- HTML5开发 桌面提醒功能
- 论文盘点:性别年龄分类器详解
- STM32F4+Wi-Fi+EDP 向 OneNet 上传数据
- 说实话:中文自然语言处理(知识图谱)的N个真实情况
- [学习笔记] JavaScript 检测数组
- SQL Server 2019中的图形数据库功能–第1部分
- 运维管理中的制度和流程
- hue 安装 + authrization manager安装
- 在mybatis里面设置不同数据库运行环境和适应性问题
- 2.http dns
- 什么是Hash冲突?如何解决Hash冲突?
- 手机幻灯片html代码,html5手机幻灯片制作手指滑动触屏手机幻灯片代码
- 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
- linux下的时间 date 和 hwclock命令
- micro-app 微前端脚手架搭建
- FixedUpdate