感觉和面试官聊的挺好的,哎,结果变成了凉经,可能是没有数据开发的经验,浅浅复盘一下咯
-
介绍参与的项目,担任的主要角色,做了哪些工作,遇到哪些难点
-
hashmap的底层数据结构
-
为什么要采用数组+链表来设计hashmap的数据结构呢(为什么要采用拉链法)
-
讲一下红黑树的数据结构(自平衡的二叉搜索树)
-
对Java虚拟机是怎么理解的(主要介绍了一下运行时数据区)
-
哪些是使用native修饰的方法(没答上,hasCode方法等等)
-
锁分几种类型(乐观锁和悲观锁)
-
所以的实例对象都是在堆里面存储吗(没答上)
-
简单描述一下Java垃圾回收的流程 (Eden区和Survivor区是怎么做垃圾回收的,存活对象什么时候移进老年代有个标准吗)
-
一个对象Gc的年龄存在哪里(对象头里面)
-
在你的项目里使用了MySQL,建了哪些表,有哪些功能,你设计的这几张表你认为他满足哪些范式(我当时介绍的时候,因为我们做项目为了便于连表的原因,所以没有满足第三范式,所以面试官接着问了下面这个问题)
-
不满足第三范式会产生什么问题(数据冗余,维护更新比较困难)
-
建表的时候使用索引了吗(没用过,但介绍了索引的数据结构B+树)
-
B+对比其他数据结构有什么优点(查找效率,便于扫库、范围查询)
-
MySQL的引擎以及他们区别(Innodb,myAsum,事务,外键,锁的粒度)
-
行级锁和表级锁的区别(针对索引和非索引字段加的锁)
-
Innodb,myAsum它们在数据存储上有什么区别(索引和数据是否存放在一起)
-
解释一下什么是事务(ACID四大特性)
-
事务的隔离级别(读未提交,读读已提交,可重复读,串行化)
-
了解数据库的视图吗,为什么要设计视图,解决了哪几个问题
-
接下来是写sql(学生表,成绩表,课程表,教师表)
(1)查询至少选修两门课程的学生学号
(2)查询两门以上不及格课程的学生的学号以及平均成绩
22.一道算法题,二分查找