2021快手软开一面凉经

快手Java面试给我整自闭了,太久没复习终于认清自己多么菜= =
前一个小时刚面完,很多问题都只回答了表面,也没怎么有主导意识,感觉大概率凉,难受)
1.自我介绍
2.说一个你项目中遇到的困难,怎么解决的
3.项目用到的技术栈(我用了redis,为什么用它?)
消息队列用了rabbitmq,一定能保证可靠性吗?
(我答:有消息确认机制,面试官:不一定,刷盘的时候可能会丢失。突然想起来这就是他和metaq区别。。)
4.redis的缓存原理是啥?有序集合(sortSet)的底层实现(跳表结构)
跳表和普通链表区别,为什么能实现跳跃查询?(加指针)
跳表时间复杂度(O(logn)
5.volatile作用:内存中可见性
为什么不能保证原子性?(举例:进行自增操作时不能保证立即同步到内存)
6.怎么能保证原子性:
lock、Synchronized、Atomic
7.lock和Synchronized区别,(lock可实现公平锁)
为什么还需要非公平锁(排队增加了阻塞和等待时间)
Lock可以让线程尝试获取锁,并在无法获取锁的时候立即返回或者等待一段时间,有没有特殊情况?(这个答案是啥?请大神解答下)
8.new一个对象 jvm层面做了什么?
类加载机制的五个步骤
9.linux命令:找出日志文件中访问量最大的top3 IP地址:(cat  test.log|awk -F" " '{print $2}'|sort|uniq -c|sort -nrk 1 -t' '|awk -F" " '{print $2}'|head -3)
10.自己也写一个类叫做java.lang.String吗?
不可以,能够被覆盖的类是有限制范围,反正不包括java.lang这样的包中的类。这样做会导致每次启用tomcat的时候都会先去加载我们自己的,很乱..(自己猜的,面试官说不是主要原因)
11.Java异常体系:
(1)异常情况:运行时异常和编译异常
(2)处理方法:抛出异常和捕获异常
12.场景题:订单超过30分钟未支付之后自动关闭,怎么设计?
回仓:使用消息队列,延迟队列,监听订单消息或轮询方式判定状态(面试官说还好更好方法,回去可以想想..)
13.算法题:多个数组全排列输出(看成一个数组全排列,写了10min才发现,gg)

#面经##校招##快手##软件研发工程师#
全部评论

相关推荐

jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
1 12 评论
分享
牛客网
牛客企业服务