这几天的面试
1、擅长什么方向==准备给自己挖哪方面的坑
2、先从redis聊,redis的数据结构,1000长度的优先队列用哪个数据结构做?把任务放里面,优先级高的优先区,zset,多线程环境下怎么处理,加锁,但是加锁性能低呀?
3、为什么redis快?关于redis单线程上伸展讨论了,问我为啥说redis是单线程的,为啥单线程就快呢?说最新版redis现在是多线程的知道吗(不知道),按你刚才的理解不久性能更差了吗?
4、redis的持久化机制?规避这两种持久化方式的劣势怎么做?
5、怎么设计一个消息中间件?若是做流量限制是对队列的容量做限制还是访问的API做限制 ?讲讲你都设计什么模块?他们之间是怎么通信的?(是觉得我回答的太菜了吗?沉默一会儿跳过了)
6、类加载机制,有两个类名字一样,功能不一样,让类加载器去加载这两个类(其实简单,就是自己写俩类加载器加载,奈何我当时一心想着破坏委派双亲加载上面去了,最后被直接提醒)
7、spring的循环依赖解决方式(唯一答的让面试官满意的,唉)
8、Y形列表,找交叉点,时间复杂度是多少
9、redis集群有机器宕机了,怎么把key均匀分布到其他机器上面去(这是在反问的时候才意识到是在问这个,在被问的时候完全没get到面试官的意思,亏,一致性哈希的方式路由就行了)
顶多也就透心凉吧,只能回答基础知识,应用方面基本gg,最后一个问题当在反问环节问明白他当时想考察的方向的时候真的是觉得亏啊。。。。。顺便再补一下近几天面试一些没答上来的问题吧
11、一个变量没有声明是final类型的,但是在用的时候发现它是final类型的,为啥(不是接口中的变量)
12、在linux上总用过管道吧?(应该是说ps -ef|grep 这种吗?当时没明白)
13、依赖注入和控制反转的区别
14、动态代理比静态代理的好处是什么
15、进程的空间地址(问题有点大,不知道从什么角度答,然后说我答得混乱。。)
16、ThreadLocal的子类
17、docker