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

相关推荐

10 195 评论
分享
牛客网
牛客企业服务