快手Java实习一面凉经
第一次面试,拷打1小时八股
刚过完考试周八股都忘得差不多了
1.List和Map有啥不同
说了一些最基础的然后就扯到了HashMap和ConcurrentHashMap,就说了底层的实现以及1.7、1.8版本前后有啥不同(但面试官只问了我list和map有啥不同,我有点紧张一下子想不起来太多,就往底层我知道的引导了)。
2.项目过程中用list多还是map多,哪些场景
太紧张竟然一下子想不太起来了,就随便扯了扯。
3.Java有哪些锁
只记得synchronized和ReentrantLock,就说了说这两个以及有啥区别
4.synchronized三种锁的状态(忘了)
5.synchronized可以修饰在哪些地方
6.说说CAS的原理
7.集群部署时使用synchronized会不会出问题
synchronized本地锁显然不能用在集群里,得用分布式锁
8.分布式锁有哪些
setnx、Redisson那些东西
9.多线程有没有了解
只用过线程池
10.除了线程池还有什么方法启动线程(不会)
11.那线程池有哪些核心参数
先说了下原理,然后自然带出了参数,同时说了常用的阻塞队列和拒绝策略以及项目里怎么用的
12.JVM内存分区
答得不好,就记得个堆、方法区和虚拟机栈
13.JVM的回收算法有没有了解
说了标记清除、标记复制、标记清理
14.监控JVM用什么命令、怎么调优(不会)
15.知道full gc吗
16.如果JVM发生full gc很多的话可能的原因是什么,怎么排查解决(不会)
17.对象创建的时候是现在新生代然后经历回收之后再去老年代吗
18.如果对象创建的时候大小大于新生代剩余大小怎么办
答了大对象会直接创建在老年代,但是面试官提醒其实是会先对新生代进行minor gc的。
19.MySQL索引数据结构是啥,B+树和B树的区别
20.说说最左匹配原则
21.还有什么索引失效的原因
说了OR、聚合函数、模糊查询的时候使用%xx、建了联合索引时使用了>、<
22.还有什么优化sql的方法
就记得个别用子查询,剩下忘了。面试官引导下想起来个覆盖索引
23.说说回表
24.为了减少回表应该怎么使用sql
用联合索引实现覆盖索引
25.事务的隔离级别
26.MySQL默认什么级别、怎么实现的
27.用transactional注解什么时候会回滚
没太懂啥意思,就说有命令执行出错时会回滚
28.如果异常被try catch了没有抛出会回滚吗(不会)
29.还有什么情况会造成事务注解失效
只记得一个aop失效的场景,类内部方法a调用方法b,方法b注解失效。要想生效必须获得代理类使用代理类调用。
30.除了这个还有吗(不会了)
31. 刚刚说到了动态代理,Java实现动态代理有哪些方式(不会)
32.Spring用了啥设计模式
听错了,听成了问我了解啥设计模式
33.了解过Spring源码
没有,但看过博客(怕说有被拷打)
34.那说说ioc是什么概念
35.什么场景用Redis
缓存、分布式锁、限流
36.数据库缓存一致性怎么解决
说了先写数据库再删缓存、缓存双删、通过监控binlog
37.项目怎么部署的
没部署过,就在idea里跑跑
38.又问到怎么注册服务这些(nacos)
39.各个服务怎么通信的
40.自己测过抢票、秒杀的情况吗,怎么防超卖的
先用生成10w个token,然后用jmeter模拟同时抢票或者秒杀。
12306没怎么测过,怕她继续延伸,所以就自己说了下12306怎么解决超卖的问题,她也没打断我
41.通过RocketMQ延迟消息实现延迟关闭订单怎么做的
就说了延迟消息特性
42.消费的时候比较慢导致超过了十分钟怎么办
雀食可能存在这个问题,那你要问我怎么解决我只能说不会了,于是扯了扯其他的东西
43.除了RocketMQ还有什么方法能做到
简单说了说xxl-job、redis过期监听、RabbitMQ、kafka以及缺点
算法:最长递增子数组长度
面试官人挺好的,每次答完会给反馈,我延伸也不会打断我。答出来80%(jvm调优这种根本没想到实习会问),算法也a了,但面完之后两个工作日挂,后面再投其他的岗位直接简历挂,说好的ks无限复活呢
#快手实习面经#