小红书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

相关推荐

05-05 12:26
门头沟学院 Java
转眼就到五月了,天气还没热起来,回过头看,这大概是过去一年中最忙碌的一段时间。2&nbsp;月到&nbsp;4&nbsp;月几乎没有休息,等节奏慢下来,才发现夏天已经快开始了,&nbsp;暑期也正式落下帷幕。最后可能会去字节,后面还剩个&nbsp;B&nbsp;站和饿了么的面试,但大概率不会再继续投了。我总想为这一年的奔波写点什么,不是为了炫耀什么经历,而是怕自己在未来某个疲惫的清晨,忘了这一路上遇到的人、做过的选择、受过的打击。美团很大,但我所在的组像是一艘大船上的仓库,琐碎、边角,不起眼。小红书则像一条快艇,核心、紧凑、推得很猛,我第一天就被拉去开会,接需求,像是被丢进战场的菜鸟,幸好&nbsp;mentor&nbsp;是个特别好的人,用他稳重的方式接住了我的慌张。而字节也算是核心组,目前还没入职,但面试就折磨了我一个月,&nbsp;面了足足五轮.这一年里,我遇到过一些很重要的人。比如sf师兄,他是我坚持做后端开发最关键的支持者。我实验室工位搬到他旁边后,他几乎是手把手带我,给我发资料、讲面经,一次次帮我梳理思路。没有他,我可能早就放弃了这条路。在小红书实习的时候,我也特别幸运,遇到了&nbsp;mar&nbsp;哥和hk。我们经常一起讨论接过需求、代码、实现方案,&nbsp;当然基本是我听他们说哈哈哈哈,他们对实习,&nbsp;业务的理解也影响了我很多。记得第一次面&nbsp;WXG,被评“算法还可以,但缺乏刨根问底的精神”。那时我不太理解这句话的意思,现在回头看,似乎懂了一些。我是&nbsp;211&nbsp;硕士,26&nbsp;届,机械转码。读研前几乎没接触过编程,只会点最基础的&nbsp;Python。考研上岸之后有段时间沉迷&nbsp;APEX&nbsp;和&nbsp;LOL,代码完全扔下了,直到后来偶然接触了伯克利的&nbsp;CS61&nbsp;系列,才真正开始把基础打扎实。之后也写过一些小的轮子项目,刷题刷到&nbsp;1700&nbsp;分,算是慢慢找到方向了。研一的时候,我跟的是一个年轻导师。他非常&nbsp;push,&nbsp;当时研零还没正式进组,就给我派了几个活。但人很实在,&nbsp;我一直觉得他适合去工作,&nbsp;但是他选择了高校当老师,&nbsp;他说想把他觉得好的知识教给大学的学生,&nbsp;他是非常非常好的人。我记得刚开始连函数怎么写都不太会,是他让我坐到他办公桌旁边,一行一行教我&nbsp;Python,看不懂代码就带我一行一行的读,&nbsp;我就在旁边当气氛组。说实话,他可能是我见过国内能力最强的&nbsp;CS&nbsp;专业的老师,全栈还全干,项目、科研、代码都能上。他给钱也很大方,从不抠,不过就是会被他导师拉去干一些没人愿意接的活,但从来没把这些事压到我们头上。后来我实习,他也很支持。嘴上偶尔抱怨项目没人干了,可从没说过什么“必须回来”这类话,心里清楚他是在成全我。研一那段时间,实验室管得不多,课程也不是特别重。我花了不少时间去上国外网课,比如算法、数据结构、Python、Java&nbsp;这类基础课程。印象最深的是数据结构,国外老师讲得真好,把很多概念讲得特别透。后来面试的时候,数据结构这块几乎没怎么被问住,心里其实挺感激那些屏幕另一头素未谋面的老师。除此之外,剩下的时间说实话也没做太多正经事,打了不少游戏,LOL、APEX、怪猎,一晃就过去了一年。到&nbsp;2024&nbsp;年&nbsp;7&nbsp;月,我开始写一篇小论文,同时也开始认真想未来的方向。是工作,还是继续读博?我读研时曾觉得读博是终点,是最理想的归宿。可现实总比想象复杂,慢慢发现自己可能并不那么适合科研。不管是国内的人情世故,还是对专注力和长期热情的要求,我都不太能达到。其实要是随便找个博读读,毕业后去个大专当老师,这条路应该问题不大。但我也明白,那并不是我想要的生活。8&nbsp;月份,小论文的实验差不多做完了,我开始正式学黑马视频,补后端知识。这时候还好,之前算法和数据结构的基础都还在,真正需要补的是&nbsp;JavaWeb、计算机网络、操作系统这些偏工程和八股的内容。刚开始看着觉得很多,其实沉下心来学,发现真正需要长期记住的没那么多。那段时间我基本是边学边问,师兄还是那个师兄,帅峰。那会儿他还在美团实习,平时很忙,只能周末抽空,我就一口气把一周积攒下来的问题全甩给他。他也从没烦过我,慢慢帮我分析,一点点讲,讲完再去永劫启动到了国企最后一天,&nbsp;&nbsp;10&nbsp;月&nbsp;7&nbsp;号,我把&nbsp;JavaWeb&nbsp;和&nbsp;Spring&nbsp;全家桶都看完了,也过了一遍小林&nbsp;Coding&nbsp;的计网笔记。为什么我记得那么清楚呢,因为我在家写完了苍穹外卖。那本来是和朋友约好去旅行的日子,但被我鸽了哈哈哈哈,就留在家里写项目,&nbsp;虽然主要是因为我妈让我回去相亲……这个项目加上之前在实验室做的一个项目,差不多就是我实习投递的主要材料了。当时也不太懂投递策略,想着“先试试看”,就直接把所有知名互联网公司几乎投了个遍,&nbsp;小厂基本没投过,&nbsp;心比天高,&nbsp;命比纸薄。结果就是一整周过去了没有一个面试邀约,整个人挺焦虑的。白天学操作系统,晚上等消息,邮箱看了一遍又一遍。也不是没心理准备,但那种空等的感觉,真的挺消耗人的...
点赞 评论 收藏
分享
评论
10
197
分享

创作者周榜

更多
牛客网
牛客企业服务