app开发者平台在数字化时代的重要性与发展趋势解析
864
2022-09-06
字节抖音后端一面
字节抖音后端一面
时间:2020/01/16 15:00
历时:1小时01分钟
第一次面试,真的很紧张,说话吞吞吐吐,应该凉了,不过面试官人很nice,是一次不错的经历,查缺补漏,争取下次更好
自我介绍开始聊专业知识:
java中的hashmap 和 concurrenHashmap的区别?hashmap和hashTable的区别?为何一个线程安全一个线程不安全?
hashmap线程不安全,hashtable线程安全,hashTable方法上加了synchronize关键字
concurrenHashMap如何实现线程安全且并发性能比hashTable高?
锁分段解释下锁分段?
这个太菜了,直接跟面试官说没研究过concurrenHashmap的源码,不想浪费自己的时间
聊一下volatile作用?
我答了实现共享变量的可见性然后聊聊可见性实现原理:
我答了通过在两个操作之间插入内存屏障禁止操作系统重排序
最后聊聊volatile使用场景
我答了在共享变量读多写少的情况。。。
聊一下synchronize关键字实现原理?synchronize的锁升级?
无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁
有用过java中的队列吗?
我说有,我使用过优先队列然后问我java中priorityQueue线程安全吗?
不安全
java中的队列有线程安全的队列吗?
我蒙了阻塞队列hhh
怎么实现线程安全的?
不清楚
聊聊数据库吧
MySQL事务隔离级别说一下?
说了那四个
可重复读如何实现?
我一开始是说了不可重复读实现是, undo日志保存的是开始前数据值,redo日志保存的是事务结束后数据的值。不可重复读是每次读undo日志的最近版本,所以可能对同一数据读到不同的版本,而可重复读是因为,在读时加行锁,因此数据能保证统一,但是没有对表加锁,所以不能知道是否有新的数据插入,所以可能会出现幻读
MySQL中有几种类型的锁?
我答了,页级锁,表级锁,行级锁
更新,查询数据库记录时是如何加锁的?
我答的是,更新时加表锁,查询时加的是行锁(这块我也不是很清楚,因为还在复习,得好好补补了)
聊一下索引,MySQL的索引是什么数据结构
B+树
为什么用B+树?
B+树,多叉平衡树,可以在较少的IO次数下,完成我们的查询工作
聊一下最左匹配原则
看你项目中有用到redis,聊一下
redis你在项目中怎么用
保存token
redis在项目你们有几台
一台挂了怎么办?
我说我配置了持久化
计网
tcp三次握手,四次挥手过程最后的等待2msl的作用
最后15分钟做一道算法题?
leetcode单词分割,我太菜了没写出来,应该gg了
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~