陌陌java开发工程师实习一面面经
自我介绍
聊项目
数据库的索引有哪些?
主键索引(聚簇索引),唯一索引,联合索引(联合索引没答上来,需要掌握最左原则)。
为什么使用存储过程,存储过程的好处是什么?
只答了提前编译好,效率高。(面试官说他没用过存储过程,疑惑)
数据库后端怎么写的?
用的Flask,用python没用java,就淡化后端主要提负责数据库端设计和实现。
有没有java项目?
没有,很尴尬。
数据库的B+Tree索引介绍,描述索引一个主键是18的数据的过程。
Java集合有什么了解?
答了list、set、map特点,主要描述了hashmap结构,扩容。
并发条件想用hashmap怎么实现?
使用ConcurrenHashMap。
对锁有什么了解?
只答了synchronized锁代码段、对象、类。
volatile,阻止JVM指令重排,保证可见性。
volatile还有什么应用?
没答出。
还有什么锁?
没答出
生产者-消费者问题了解吗?
只在操作系统了解过,磕磕绊绊。
多线程了解吗?
答了进程和线程区别,线程共享堆和方法区,独有程序计数器、虚拟机栈,本地方法栈。
对线程池有什么了解?
只答了线程池节省了创建线程的开销。
线程池有哪些重要参数?
最大线程数量还有。。。未答出。
JVM内存模型?
答了堆和方法区,主要讲堆是存放对象实例的地方,垃圾收集的主要地方,被称为GC堆,分为新生代,老年代,目的是提高垃圾回收效率。
看你对垃圾回收有了解吧?
答了对新生代用复制法,老年代用标记-清楚和标记-整理。
有哪些垃圾回收算法?
未答出。
网络分为哪些层?
TCP在哪一层?
三次握手,四次挥手,为什么挥手要四次?
经典问题,但是没准备好,磕磕绊绊词不达意
还有什么你掌握我没问到的?
没有,有也不太敢说(其实感觉数据库问的有点少)
做题:二分查找递增数组第一个不小于N的数组下标。
你有什么问题想问我?
谨记不问是否通过,不问薪资,想问公司环境但觉得有点显得着急,问了面试官对我接下来的学习方向有什么建议。
总的来说偏向基础知识,锁和并发问得很多,头大,面了一个小时,手撕代码还好不难。

浙公网安备 33010602011771号