小米后端开发日常实习一面
1.leetcode55跳跃游戏
2.Leetcode21合并两个有序链表
3.sql题(一点都不记得sql了,在面试官提醒了磕磕绊绊写出(1),(2))
给两个表
员工表user:idnameagedep_id
部门表dep:iddep_name
(1)找出所有姓“张”的员工
(2)找出员工数最多的部门
(3)找出最大年龄员工所在部门
4.自我介绍
5.ArrayList 和 LinkedList的区别
6.Java中的锁,synchronized锁升级,锁信息存在哪(对象头?)
7.synchronized和Lock怎么选择
8.Synchronized是可重入锁吗,怎么实现?是公平锁吗?锁普通方法和静态方法区别?
9.Lock怎么实现可重入,怎么实现非公平?(我一开始说被唤醒后直接尝试获取锁,被提醒后才想起来是加入队列前直接尝试获取,这块记不太清了)
10.Lock想没获取到锁不阻塞,继续去完成其它任务怎么办
11.jvm内存模型
12.垃圾回收发生在哪,垃圾回收算法,垃圾回收器,如何选择垃圾回收算法
13.新生代和老年代的内存比例????我说可能看系统配置,重要对象比较多就老年代设大一点面试官说那你设计的系统配多少
14.spring自动装配(我答factories文件这个),追问具体什么时候,什么类(我说启动后去,不是很懂)
15.spring条件装配,有哪些类型(我简要说了下,但具体都不记得)
16.spring创建的是单例吗(我答可以调scope改成prototype),问单例有并发安全问题吗
17.zookeeper架构,有哪些功能,结点类型,有哪几种角色,观测结点是用来干嘛的,是强一致性吗,怎么保证的(我答ZXID巴拉巴拉)
18.反问
10-25面的,sql和八股答得不好,但反问评价竟然说还不错,后面可能还有一面。我还以为有戏,结果这周都没动静,又凉了。话说官网还是显示面试中,挂了会显示流程结束吗