8-18被捞     一面8-19 1h     晚上8点视频面,辛苦了            实习经历               说说日志 undo log、redo log(回滚/归档)               项目用的Redis存的什么数据结构(那肯定是string)               项目Redis用在什么地方?               Redis基本数据类型               Zset底层数据结构(跳表+hashmap)               过期键处理策略(内存淘汰机制)               跑3个服务,怎么保证同一时刻只有一个请求进来?(分布式锁,Redis/Redisson)               有哪些分布式锁?(Redis跟他儿子Redisson,应该还有zookeeper、数据库锁)               Redis分布式锁存些什么?怎么实现的(setnx,key锁名,value=uuid+线程名)               那你讲讲什么是分布式?(分布在不同机器、硬件上的服务,通过远程调用实现通信)               Redis做分布式锁,加锁宕机怎么办?(设置过期时间防止死锁)               那执行业务时间过长怎么办?(看门狗机制,过期时间30s,间隔10s检测服务是否存活)               Redis跟Memcached区别(没用过MC)               持久化机制(RDB、AOF)               知道Lua脚本吗?(将一组命令打包作为整体,原子执行,运行时不会被其他请求插入;减少网络io;复用)               MySQL底层索引结构(b+树)               为什么不用b树(链表串叶子节点、提高查询效率,降低树高度;磁盘io少没说)               间隙锁知道吗?(record lock,gap lock、next-key lock都抡一下)               怎么解决Redis宕机后服务不可用问题(吹)               Java对象存储在内存中的结构(说了堆,应该讲Java内存布局,对象头之类的)               Java对象包含什么?例如Java对象头(对象头、实例数据、对齐填充;MarkWord、类元指针,数组长度)               MarkWord里有什么?(锁标志等信息、hashcode、分代年龄、指向锁的指针)               锁升级?(无锁、偏向锁、轻量级锁、重量级锁)               synchronized底层加锁原理(ObjectMonitor获取监视器、mutex lock)               你用过什么Java的锁?(ReentrantLock、ReentrantReadWriteLock、StampedLock。。。)               循环CAS循环几次?(失败自旋无限次,比如说AtomicInteger的getAndAddInt,但是可以设置阈值)               这些锁跟synchronized区别(进入的线程状态不同说起,到LockSupport、UnsafeCAS)               synchronized可以加在代码块上吗?               快排+单词逆序+三个字母全排列(谢谢放过)               反问          二面8-23 30min     下午5点电话面            实习经历               MySQL如何保证事务一致性(通过aid保证c、undo log回滚日志/redo log归档日志。加餐:隔离性加锁、原子性undo log回滚、持久性redo log归档)               事务四种隔离级别(读未提交、读已提交、可重复读、串行化)               MySQL默认隔离级别(可重复读Repeated-Read)               如何保证序列化(应该是Serializable)?(加表锁,使事务串行执行)               SpringBoot项目中你怎么使用事务?(声明式事物加个注解@Transactional实现事务管理)               加一个注解就会生效吗?(不是,还需要数据源支持事务;无需配置,AOP拦截方法前后加入事务,根据执行情况进行回滚/提交;Springboot默认开启事务管理,也可以配置发生某些异常时不回滚rollbackfor)               项目什么场景下用到事务?(复合修改操作/增删改,有异常回滚;查询可以容忍数据丢失)               项目               SQL:预约记录,求最多预约记录的用户id(大佬们,求更好的答案)        SELECT user_id FROM my_record GROUP BY user_id ORDER BY COUNT(*) DESC LIMIT 1;-- 子查询方式select user_id from (SELECT user_id,COUNT(*) as ct FROM record GROUP BY user_id) t ORDER BY t.ct DESC LIMIT 1;          LinkedList存储Integer,求两个list交集        public static void main(String[] args) {    LinkedList<Integer> list1 = new LinkedList<>();    LinkedList<Integer> list2 = new LinkedList<>();    list1.add(1);    list1.add(3);    list1.add(5);    list1.add(7);    list2.add(2);    list2.add(3);    list2.add(5);    // api,保留传入list相同元素,其他删除(求交集存储在调用者上)    // list1.retainAll(list2);    // contains判断,不存在则删除    // 使用迭代器遍历list,避免删除后边界、下标问题    Iterator<Integer> iterator = list1.iterator();    while (iterator.hasNext()) {        if (!list2.contains(iterator.next())) {            iterator.remove();        }    }} 回答的不好,贴一下对问题的理解吧     
点赞 4
评论 11
全部评论

相关推荐

饿魔:去不了大厂,总有能去的地方,不知道焦虑什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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