首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
人狠话不多的番石榴很调皮
安徽省安庆市石化第一小学 理财顾问
发布于北京
关注
已关注
取消关注
真是一位塞大的人物
@小盲陀:
小米后端开发日常实习二面
应该是去年10月面的,最近复习八股,就每天往牛客贴一条面试记录,自己也复习一下。1. 没让我自我介绍,而是问我还没找到实习吗? 。。。找到实习了我还面试干嘛。。。2. 实习做了什么?项目来源?3. redis常见数据结构,用了哪些?4.除了redis还有知道有哪些缓存,回答memcached。追问区别。5.布隆过滤器。(简历里写了用来解决缓存穿透,每次都会被问,面试官真的喜欢问这个)6.jvm内存结构,垃圾回收算法7.除了kafka还了解哪些消息队列,有什么区别,为什么有这么多种8.读过哪些源码9.算法题:快排10.反问对里面的八股我简单贴下回答和扩展(个人理解,有问题欢迎指出)3. String:最常见,字符串和数字都能用String存。实现是动态字符串和int。 Hash:kkv结构。可用来存订单购物车这种,订单id——商品id——数量 List: Set ZSet:跳表实现,有序集合,可以根据元素权重来排序。排行榜,比如牛客有个人品排行榜,可能就是存了redis。有人送花,加了人品,可以通过 ZINCRBY命令来增加对应权重。可能引申的问题:为什么ZSet的实现用跳表而不是其它结构例如红黑树 其它几种不常用数据结构BitMap,HyperLogLog,GEO,Stream4.这个问题倒是不常见,因为基本都是用的redis。既然问了稍微背两句八股吧相比于Memcached,redis支持更丰富的数据类型,而Memcached仅支持kv结构; redis支持数据持久化(aof,rdb); redis主流程单线程(aof刷盘,关闭文件,释放内存。注意还有这三个后台线程;6.0后又引入了多个线程来处理网络请求,当然不影响主线程是单线程),memcached是多线程除了分布式缓存,还有常见的本地缓存像Caffeine5. 布隆过滤器本质是一个很长的Bit数组以及多个hash函数,当写入一条数据进数据库,求多个hash函数的code,在数组的对应位置改为1。读取数据时,先通过多个hash函数找到对应哈希槽,如果里面有一个是0,就说明该数据一定不存在于数据库,也就不用查数据库了,很大程度上解决了缓存穿透。但注意,查的所有哈希槽都是1不代表该数据一定存在于数据库,因为存在hash冲突的问题。但是没关系,不过是多查一次数据库,还是能发现数据不存在的。6.堆,虚拟机栈,本地方法栈,方法区,直接内存。 字符串常量池在堆中,运行时常量池在方法区中,直接内存是用的本地内存,jdk1.8将方法区移到了本地内存。堆分为新生代,老年代,永久代(1.7之前有,1.8后被元空间代替,移到了本地内存,实际上都是对方法区的实现),其中新生代又能分为Eden,S0,S1(其中Eden区一般占内存较大)。新创建的对象首先分配在Eden区,当Eden满了会触发一次Minor GC,存活下来的对象会被移动到Survivor区(s0或s1,这两个区是对称的,每次只有一个用来使用),MinnorGC后,从Eden区和当前Survivor区中存活下来的对象会被复制到另一个Survivor区。在Survivor中存活下来多次(可通过jvm设置阈值)后就能进入老年代。 作用范围 触发时机Minor GC: 新生代 Eden区满MajorGC: 老年代 老年代空间不足FullGC: 整堆+元空间(1.8) JVM显示请求(System.gc())或老年代严重不足注意元空间用的是本地内存,一般比较充足,当然也可能把整个操作系统的内存全部用完了。FullGC回收堆,自然是回收的垃圾对象。那么在元空间里回收什么呢?元空间主要存放类的元信息,运行时常量池,方法定义,字段定义。。。回收元空间主要是回收已经被卸载的类的元数据(包括类的结构信息墩、字段方法常量。。。)再说到垃圾回收,首先是判断对象已死:引用计数法,可达性分析法再是三种回收策略:标记清除,标记复制,标记整理(要区别分别用于哪个虚拟机的哪个区域,为什么。很常见,等下一篇帖子整理吧)7.常见的消息队列有kafka,rocketMq,rabbitMq。会一个就行了,然后记一下区别,多了记不住,我这里主要说一下kafka和rocketMq吧。 定位 适用场景 零拷贝kafka 高吞吐 日志采集,实时流处理 sendfilerocketMq 高可靠 金融,订单,电商等业务 mmap这里提到零拷贝的话,面试官大概率会让你继续说说零拷贝的内容,以及为什么两个消息队列这么选择。传统IO:硬件———>内核缓冲区(内核空间里)——>用户缓冲区(用户空间里)——>socket缓冲区(内核空间里)——>网卡其中硬件与内核空间的消息复制用的是DMA拷贝,内核空间与用户空间的拷贝是CPU拷贝,以及会涉及到上下文切换mmap:反正不管内核空间还是用户空间都只是内存,直接将上述内核缓冲区和用户缓冲区映射到同一个内存空间 这样就减少了以此CPU拷贝。但没有减少上下文切换,因为只是内存用的同一块,但是逻辑上还是分开的。sendfile:更进一步,干脆不走用户空间了,直接从内核缓冲区拷贝到socket缓冲区。直接减少两次上下文切换,注意你进行sendfile系统调用还是会有上下文切换,只是省略了数据拷贝中的两次上下文切换。kafka的追求是高吞吐日志系统,直接把文件发送出去,用sendfile更快。rocketmq追求的是可靠的业务中间件,用mmap起码数据还是会走到用户空间的,这样我们的可操作性就更大,比如rocketMq可以自己控制刷盘,再多我也不了解了,我只用过kafka。8.没读过源码可以直接背aqs的八股。 AbstractQueuedSynchronizer是抽象队列同步器,是java并发包中提供的构建锁和同步器的基本框架。首先是它有一个volatile修饰的int型变量state,在ReentrantLock里它表示锁被获取的次数,在Semaphore里它表示剩余的许可数量。一般我们通过cas操作来修改这个变量,cas成功表示获取锁成功,否则失败。同时,aqs内部维护了一个同步队列,用来存储那些等待获取锁的线程。当线程获取锁失败时,就会把线程引用包装成一个结点放到队列里去。当持有锁的线程释放资源时,会调用release方法,在释放锁之后会把队列里的第一个结点唤醒,被唤醒的线程会去尝试获取锁。aqs是基于模板方法设计的,它定义了一系列模板方法,如acquire,acquireShared,release,releaseShared等等,我们可以写一个aqs的子类,然后自己实现tryAcquired,tryReleased等几个抽象方法。然后就能实现自定义的同步器。如果觉得该帖子对你有帮助的话,欢迎一键三连[笑cry]
点赞 8
评论 5
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-21 14:26
SHEIN希音_后端开发(准入职员工)
SHEIN内推,SHEIN内推码
关于Shein:全球领先的时尚和生活方式在线零售商,服务于150+个国家和地区,2022&2023全球购App下载量TOP1校招岗位:1、信息技术类(算法、开发、产品、产运、数分、运维等)2、供应链类(供应链管培等)3、商品平台类(商务管培等)4、全球运营类(品牌等)5、国际物流与仓储类(国际物流管培、全球交付管培、国际仓储管培)6、职能管理类❗每人可最多投递3个岗位,仓储储备干部不占用岗位投递次数内推链接https://app.mokahr.com/m/campus_apply/shein/2932?recommendCode=DSQm9Bgz&hash=%23%2F...
点赞
评论
收藏
分享
05-22 09:37
已编辑
平顶山学院 后端
暑期实习offer选择
👋个人背景:26硕Java后端选手🌱offer1:高德-地图数据中心-业务是支撑高德地图APP及To B业务的地图数据生产与挖掘,构建底层基础能力。工作涵盖海量地图数据的处理、分析及查询,需开发和维护高并发、高实时性系统以保障数据服务的稳定性与高效性。实习岗位主要负责相对独立于强业务逻辑的技术任务,如大数据服务的性能优化、存储优化等,通过优化数据处理流程与系统架构,提升地图数据的生产效率和服务能力,为前端应用及企业级客户提供精准、实时的地图数据支持,聚焦于后端技术架构与数据处理能力的落地实践。💯offer2:美团-核心本地商业-业务是聚焦商家治理系统研发及商家体验优化。后端实习工作围绕规...
点赞
评论
收藏
分享
03-29 16:00
门头沟学院 Java
真的崩溃了
为什么呀,为什么别人都有面试,而我没有,我看别人投字节,投腾讯都会有人理,我也投了,一直卡在测评,投了一个月了只有一个美团面试,真的要崩溃了,求佬给点建议啊
超人强爱超人:
奖项,四六级什么总得写吧
投递美团等公司7个岗位
点赞
评论
收藏
分享
05-01 22:41
中南大学 Java
27届想找日常实习
第一次写简历,项目是烂大街的外卖和点评,求大佬们拷打
浪漫主义的虹夏:
985加粗加黑就行了
点赞
评论
收藏
分享
05-22 18:20
已编辑
北京外国语大学 平台产品
租房是大家出社会的第一课!
我来北京这些年,一共搬了5次家,几乎一年一搬,租房这块比较有经验了。我整理了下这些年自己的一些租房经验,大家有问题也可以在评论区问我,我看到后会回的。-一、租房前期要问清楚的地方1、房子是本人出租吗?(确认房子的产权归属)2、租房起始时间怎么算?每个月几号交房租?3、入住时间可以谈吗?可不可以争取3天左右免租过度期用来搬家、整理4、房租怎么交?押一付三还是可以押一付一?5、水电费怎么交?是房东给户号租户自行缴费,还是跟房租一起结算?6、有没有网络!网络费用怎么收?7、需要交取暖费,物业费吗?(租户交还是房东交,8、是否有其他费用?9、是否可以更换窗帘、增加纱窗、墙上贴挂钩等(有的房东不同意租房...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
不会租房吃大亏
3.4W
2
...
秋招提前上岸,这个机会真的不错!建议大家冲!
1.1W
3
...
暑期实习 ------ 37 轮传奇耐面王的自述
8710
4
...
27学院鼠好不容易找到实习,代课被同学举报
6619
5
...
传奇耐面王后端暑期实习timeline
4426
6
...
得物oc
4309
7
...
一段后端中厂实习,速通前端在秋招找大厂前端岗位,可行吗?
4285
8
...
西安腾讯云智后端
4096
9
...
如何复盘实习期的项目?
3970
10
...
天呐,这么直接的么
3600
创作者周榜
更多
正在热议
更多
#
职场捅娄子大赛
#
273866次浏览
2459人参与
#
如何KTV领导
#
51160次浏览
395人参与
#
华泰证券Fintech星战营
#
12009次浏览
145人参与
#
华为求职进展汇总
#
4605828次浏览
28077人参与
#
如果不工作真的会快乐吗
#
112102次浏览
928人参与
#
一人一个landing小技巧
#
48316次浏览
823人参与
#
互联网行业现在还值得去吗
#
13368次浏览
50人参与
#
节后第一天上班,我的精神状态
#
5888次浏览
70人参与
#
2025,我想......
#
43290次浏览
429人参与
#
00后45度躺现状
#
89232次浏览
454人参与
#
租房前辈的忠告
#
162220次浏览
6202人参与
#
应届生应该先就业还是先择业
#
102825次浏览
622人参与
#
产品实习,你更倾向大公司or小公司
#
147962次浏览
1921人参与
#
校招入职后的感受
#
265117次浏览
2629人参与
#
职场上哪些行为很加分?
#
188448次浏览
2317人参与
#
产品人专业大盘点
#
42823次浏览
292人参与
#
秋招最大的收获是什么?
#
29204次浏览
286人参与
#
简历无回复,你会继续海投还是优化再投?
#
63737次浏览
682人参与
#
运营人求职交流聚集地
#
130472次浏览
972人参与
#
扒一扒那些奇葩实习经历
#
54799次浏览
846人参与
#
嵌入式岗知多少
#
35810次浏览
421人参与
牛客网
牛客企业服务