北京掌上先机网络科技有限公司面经
岗位:Java后端实习生
时间:2024.11.22
笔试
一些java基础题 两道sql题 然后是手写阻塞队列 两道算法题 一道好像是考的哈希算法,找字符串子序列 另外一道是dp算法:leetcode 279. 完全平方数
笔试总结
总体笔试难度不大都能答出来,但是写到后面算法题的时候时间不够了,第二到算法题只写了一半。 然后是它提供的在线编辑器太难用了,就和记事本写代码差不多。
面试
在笔试完后一个星期收到面试的通知。
面试开始前有个小插曲
面试官看了我的简历后,惊讶的问我,你的简历这么这么简单,只写了基本信息,其余什么都没有。 我当时挺惊讶,不对呀我的简历是写满了呀。 面试官再三确认后,说这就是我的简历。 可能是当时投简历的时候简历选错了吧(也找不到是在哪里投的了),说来也奇怪我这样简历也能拿到笔试和面试。 最后,面试官说没关系,问问《基础》题目吧,然后就是八股文拷打了
首先就是自我介绍
接下来是八股拷打了
JVM和Java基础
-
讲讲hashMap吧
Hash的底层结构、扩容原理 ConcurrentHashMap的原理,如何保证高并发以及线程安全 JDK1.8对HashMao的改动 HashSet的原理
-
你用过哪些锁 讲下Synchronized锁 Synchronized标注在方法上方法锁和代码块锁的区别
-
volatile关键字作用,应用场景 讲下volatil如何解决可见性问题
-
JVM的内存区域划分
-
Java中有哪些垃圾回收算法 不同垃圾回收算法的应用场景 其中复制算法用于清理那一种垃圾,老年代还是新生代?
数据库
-
为什么索引查询效率高
-
讲下B+ Tree 相比起其他查询树(二叉树、红黑树)的结构,B+ Tree有什么优势。 索引是怎么存储的 为什么三层B+ Tree能存储大约2000万条数据
-
说下数据库的缓存
-
当数据库出现慢查询的时候应该怎么处理
-
如何使用explain去分析查询,explain结果中有哪些参数
-
数据库查询场景
一个成绩表记录每个学生的各科成绩,要求查出总分高于平均分的学生信息。
-
索引的最左匹配原则
建立a、b、c的联合索引 请问 where c = x and b = x and a = x 能否用上联合索引 where a = x and c = x 能够用上哪些索引
Spring Boot
- 常见的Spring Boot注解
- 讲下Spring AOP、IOC
面试结束后面试官评价:
基本都能答个大概,但是理解还不够深刻,比如前面的JVM和锁答的不是特别好,后面答的还可以,建议多去了解了解基础。 你现在才大三,还有很多时间去补基础。
面试总结
感觉面试官非常友好,会指出我面试中答的不好的地方,也会耐心讲解正确答案。
JVM虚拟机了解到的不是很多,因答的不好,接下来好好去补一下。 然后是java集合、锁的底层原理理解的不是很深刻。面试官问答打的不好,甚至还答错了(CorrentHashMap加锁机制) 这次面试也暴露出了我的八股还一些问题,有些地方理解的不是特别深刻,面试官一追问就出问题了。 接下来就是应该巩固自己的八股,多了解其中原理与细节。
