Java面经复习(八)

问:什么是微服务?

答:微服务是指将整个系统拆分成许多细小的部分,同时在将拆分后的功能部分,按照需求重新整合成一个系统。

问:Spring框架的底层是怎么实现的?

答:采用了IOC的方式,即依赖倒转。个人理解的话,是将对象的创建和销毁交给了Spring框架来生成和管理,而程序员则只负责将对象的参数传入。

问:介绍一下hashmap的底层架构?

答:采用数组+链表+红黑树的模式,具体来讲是数组是hash数组嘛,为了处理冲突采用了链表的方式。当链表达到一定长度后,采用红黑树重新处理链表中的数据以达到减少搜索次数的效果。

问:hashmap的rehash了解吗?

答:在hashmap链表的长度达到一定程度(负载因子为0.75)后,会重新生成一个长度为16的数组,并将数据按照哈希的方式加载到新数组中。

问:了解lambda表达式吗?(JDK8所带来的新特性。)

答:(parameters) -> expression 或 (parameters) ->{ statements; }

问:AOP编程了解吗?

答:即面向切面编程,其思想是针对业务代码中重复的代码部分抽取出来,在实际业务进行的复用这一段代码即可

问:mysql数据库引擎知道嘛?有什么区别?

答:Innodb引擎和MyIsam引擎。首先Innodb引擎是聚簇索引,因此主键一般是索引,而MyIsam引擎则不是。其次,Innodb引擎支持行锁,而MyIsam引擎只支持表锁,粒度上Innodb会更小。其次是Innodb引擎采用B+树作为索引结构,MyIsam采用B树作为索引结构。

问:数据库索引有哪些?

答:哈希索引和B/B+树索引。

问:介绍一下各自的优点?

答:哈希索引因为采用哈希结构,所以检索速度通常比较快。但在出现大量重复键值或进行范围查询的情况下,则表现较差。相对的B+树索引结构由于采用B+树的结构,因此查询效率比较平均,而且由于叶子节点联通,因此可以采用范围查询的方式。