一些面试经验(java)

最近面试了几家公司,下面来谈一谈一些被问到的感觉重要的面试题。以后会更新滴
1、Mybatis的缓存?
Mybatis有一级缓存和二级缓存。
一级缓存是Sqlsession不同,是session级别的缓存;二级缓存是基于mapper文件的namespace的。
2、jdk1.8和之前有哪些区别?
主要是hashmap跟concurrenthashmap。
hashmap1.8之前底层是数组加链表,1.8之后是数组加链表加红黑树,在链表长度达到8的时候变成红黑树增加查询效率。
concurrenthashmap之前是好多个segment,加锁都加在整个segment上,不影响其他的segment操作;1.8之后摒弃了segment的概念,变成Node数组+链表+红黑树,加锁变成sychronized+CAS只加在头node节点上。
3、说说HashMap
这个是老生常谈的问题了,数组加链表、hash &(length-1)、1.8之后的区别。
4、数据库的索引
主要分为聚簇索引和非聚簇索引。
聚簇索引存储的是一行数据,而非聚簇索引存储的是这一行的主键和索引值,所以当非聚簇索引要查询的时候会根据主键来获取数据(这一操作称为回表)。
Mysql索引底层结构用的B+树和hash索引。

5、重载和重写
6、各个访问修饰符的区别
7、JVM的垃圾回收算法和垃圾收集器
8、volatile和JMM
9、线程池的七大参数

你可能感兴趣的:(一些面试经验(java))