小红书java社招一面面经

  1. hashmap的底层数据结构,put的过程
  1. hashmap是否是线程安全的,多线程下会有什么问题?concurrentHashMap底层是如何实现线程安全的。
  1. synchronized锁的升级过程。
  1. 数据库是否用了索引?用explain无法看出索引用了哪一部分?

https://blog.csdn.net/houmenghu/article/details/109580196

遇到非等值判断时匹配停止

a = ? and b = ? and c= ?
a = ? and b = ? and c > ?
a = ? and b > ? and c > ?, 只用到索引的一部分(a,b),因为b把数据阻断了,b不是定植时,c时无序的,无法使用(a,b,c)索引。

show global variables like 'optimizer_switch'\G

5.6版本后,可以开启索引下推。虽然有非等值条件,导致索引不能全部使用,但是可以利用索引条件,里面有的字段进行过滤,过滤后再回表读取真正的数据(extra=using index condition),而不是只根据部分索引查出该索引符合条件的数据(回表数据太多,回表一般是随机io,减少回表次数),然后再server层进行过滤,这样效率会很低(extra=using where):

extra=using index是覆盖索引
type=index,表示使用索引排序

http://fivezh.github.io/2020/01/19/mysql-icp/?utm_source=tuicool&utm_medium=referral

  1. spring循环引用的问题,A->B->A问题
  • spring对于单例模式,用了三级缓存
  • getBean(A)时,先实例化A,然后曝光到singletonFactories中,允许循环依赖。初始化结束后,再从提前曝光缓存earlySingletonObjects以及singletonFactories移除,挪到singletonOjbects单例缓存中。
  • getBean(B)依赖A,先在singletonObjects 中查找,如果有直接返回。如果不存在,在earlySingletonObjects中查找,这个是提前曝光,还未初始化的单例。如果不存在,在singletonFactories中查找,找到后放回earlySingletonObjects。这个时候A还没初始化。
  1. 举个不用回表的例子
    覆盖索引

    index (name, age)
    select name,age from t where namg = "xiaoming";
  2. 主键用uuid会有什么问题?

  1. 聚蔟索引和非聚蔟索引的区别,是否分别对应主键索引、辅助索引?是的
    https://www.jianshu.com/p/643850f684db
  • mysql索引,高度一般是3-4层,innodb的页大小是16kB,叶子节点是双向循环链表?一个b+树存储行数最多为2000w

https://zhuanlan.zhihu.com/p/86137284

  1. 实现LRUCache,这里可以考虑用map,节点是node,node之间通过前后指针关联,双向链表
    https://leetcode-cn.com/problems/lru-cache/

存在个问题,一批新数据会把访问很久的数据给挤出去,这里如何解决这个问题?

https://juejin.cn/post/6844904049263771662

https://segmentfault.com/a/1190000038714624

  1. jvm垃圾回收是如何做的?

  2. jvm运行时有哪些数据区

  3. 哈希冲突如何解决

  4. b+树叶子节点存的是指针吗?存的是数据

  1. 可重复读的情况下,select count(*) from t where a >= 0 and a <= 10在另一个事务执行前后效果如何?可重复读下,对于更新语句,会加锁。只不过是通过mvcc来实现可重复读,依然会出现幻读的现象,需要改为当前读
  1. CMS和G1均使用三色标记法进行标记,一开始是白色对象。
  • 黑色对象,自己和成员对象均已标记存活。
  • 灰色对象,中间状态,自己存活,但是成员对象未标记(白色)
  • 白色对象,未标记或者没有访问到(可以回收)
  • 跨代引用
  • 新生代引用老年代如何回收,直接扫描,因为新生代朝生暮死。
  • 老年代引用新生代,回收新生代时minorgc,使用card table,牺牲空间换时间,减少扫描整个老年代的时间,因为老年代的存活时间是比较长的。https://www.jianshu.com/p/f1ff4ab0fed7,g1引入了remember set
  1. write ahead log
  1. 延迟关联,解决深分页问题

http://qidawu.github.io/2019/11/26/mysql-deferred-join/

#面经##小红书##Java工程师##社招#
全部评论
楼主几年经验
3 回复 分享
发布于 2021-07-10 16:13
和我被问到的几乎一样,不过还是四面挂了😂
1 回复 分享
发布于 2021-07-14 08:21
算法问了什么呢
点赞 回复 分享
发布于 2022-07-21 00:17
没有算法题吗
点赞 回复 分享
发布于 2021-12-09 22:13
大兄弟 你的这个面试结果咋样?
点赞 回复 分享
发布于 2021-12-05 15:27
兄弟你算法怎么准备的呢
点赞 回复 分享
发布于 2021-12-02 14:42
base 哪里呀,
点赞 回复 分享
发布于 2021-11-23 18:05
我们是阿里巴巴进出口事业部,考拉海购部门吧,在招聘22届实习生
点赞 回复 分享
发布于 2021-07-13 17:39
字节跳动秋招提前批来了,真海量hc,直接免笔试,提前批不影响正式批,多一次机会,欢迎大家投递 ,24小时跟进度,为你的面试保驾护航,黄金内推码: 4QS8DTU  投递链接: https://jobs.bytedance.com/campus/position?referral_code=4QS8DTU 有意者加我微信xcynice666,拉你进群哈
点赞 回复 分享
发布于 2021-07-09 21:47
聚集索引并不一定是主键索引吧,也有可能是第一个非空索引或者rowid
点赞 回复 分享
发布于 2021-07-09 13:38
难度合理, 项目大概会问哪些问题啊?
点赞 回复 分享
发布于 2021-07-09 11:30
校招还是?
点赞 回复 分享
发布于 2021-07-09 00:38

相关推荐

09-08 13:48
武汉大学 Java
滴滴秋招后端开发三面要满足评级条件才能约hr面吗?有这说法吗?主播今天面了滴滴,本以为是上周五三面通过后约的hr面,结果跟我说还是技术面,我询问是否是加面,面试官说不是,就是三面,我说我上周已经面了三面,他说他去找hr确认下。在确认过程中说我们先来面,面完后和我说,hr说是因为上个三面面试官面评没及时提交所以以为没面又约了面试。背景如上,以下是今天和滴滴hr通话了解情况的内容,疑惑点很多:1.他跟我说是加面,是第一个三面面试官觉得有些部分需要确认于是又进行了一轮约面(那与第二个面试官说辞有区别,在我的质疑下又说是因为面评忘提交)2.在与我沟通过程中提及,后续不会有hr面了,我又提出疑问,是因为三面不过没有还是什么,得到的回答是,需要三面达到一定评级,并且要加一轮面试,得到的评级结果相同才会约hr面,说我的评价没到能约hr面的地步,我质疑:为什么小红书牛客上不少只有一个三面就有hr面的,回答:小红书上可能不是今年的,也可能是一些营销号,让我别全信。3.在我开启录音后,我问能否对他所说的招聘流程(即约h&nbsp;r&nbsp;面的前置条件)负责,他说这个不方便透露,因为你开启了录音。我要求他去找上级或者其他能够给我完整解释的人来沟通。总结:原本对滴滴面试流程快还是蛮有好感的,这波操作只能说真的很坏好感。现在就等个合理解释,没有解释这件事肯定不会就这样搪塞过去。补充:再用公司电话打完后又用了私人电话打给我,说没点问题我是不信的。
Marais__:我三面结束已经一周多了,目前也没有hr面,流程就卡在面试考察中,我看今年牛客上好像还挺多人滴滴三面结束都没约hr面的,不知道什么情况
点赞 评论 收藏
分享
评论
10
200
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务