【海康威视】-Java岗-日常实现面经,已oc

笔者14号在实习seng上投递的简历,21号晚约了电面,当时在外面,就推迟了半个小时后。下面回想一下题目,估计记不全了。。

电面(两位面试官一起面的,估计有一位是主管)

1、自我介绍,问了一下项目

2、Java基础,详细介绍一下HashMap

说了下put、get,1.7和1.8的不同实现,红黑树的转换机制
3、JDK1.7中HashMap与1.8的区别?循环链表?

1.7头插法,1.8尾插法,并发 put 会导致 resize 链表头插导致指针指向错误,形成循环链表
4、有哪些并发的Map,介绍下原理?

巴拉巴拉,古老Hashtable、Collections包装、ConcurrentHashMap,简单说了下原理
5、你提到了锁的概念,说下 Synchronized 和 Lock 的区别?

老八股了,巴拉巴拉
6、看你熟悉MySQL,详细讲一下索引?

说了MyISAM、InnoDB中索引的不同实现,聚簇索引,非聚簇索引,索引的使用原则,联合索引,最左前缀
7、让你建一张数据库表,你如何建?考虑什么?

说了考虑遵循什么数据库范式,然后字段的数据类型,主键,索引的建立
8、看你熟悉JVM,说一下JVM内存区域?哪些是线程私有?

巴拉巴拉,程序计数器,本地方法栈,虚拟机栈,堆内存,方法区。。。
9、对象分代理论知道吗?为什么要这样做?

巴拉巴拉,在垃圾回收机制中,对象分为新生代,老年代,分别使用不同的垃圾收集算法,巴拉巴拉
10、那新生代能变成老年代吗?是怎样晋级老年代的?

每个对象在 Hotpot虚拟机中都有一个对象头,其中存储了对象年龄,巴拉巴拉
11、分代收集理论的好处是什么?

巴拉巴拉,尽可能减少 full GC 的产生
12、考虑这么一种情况,你突然发现请求变慢了,可能是什么原因?你会如何处理?

答了可能是因为慢查询所导致,可以优化SQL查询,使用explain查看索引是否失效
追问,还可能是什么原因?
我支支吾吾
我们刚刚讨论过JVM的垃圾收集(提示了我一下)
我恍然大悟,答曰新生代的对象创建频繁导致 minor GC 频繁触发
追问,那你怎么处理这种情况?
可以在JVM层面扩大堆内存,也可以在代码层面可以定位到频繁创建对象的地方,再去具体考虑如何优化
已经收到 offer 了,流程是真的快,当天晚上面完,第二天中午 hr 就发 offer 了

发表评论

后才能评论