亚信互联技术一面
感受:面试官很好,给出了我的一些宝贵的指导建议。基本上都没咋答出来,一直没时间准备八股文,准备数学考试中
一、问题如下
自我介绍
1、说一下java常见集合
hashmap、set、list等等特点
2、HashMap数据存取原理扩容说一下
答:初始容量、临界因子、算Hash、链表、红黑树、扩容
3、插入冲突如何解决?
答:链表、红黑树
4、扩容的时候是原来的基础之上扩容吗?还是重新建一个新的?
答:底层就是有个copyof函数,应该是重建的。
5、Interface 和 抽象类的应用场景
答: 方法规范定义;模板作用
6、 B+树了解吗
答:数据结构上是从二叉搜索树上演化过来的。
7、我想问的是我们的数据库MySQL,像 inner DB 搜索引擎下有聚簇索引和非聚簇索引,这两个它跟 b 加树存储的结构有关。我们在查数据的时候,你可以从 b 加树的数据结构来上来回答,也可以从句子索引和非句子索引在查询数据的时候有什么不同。当然它不同。
答:聚簇索引叶子节点是数据、二级索引是主键、涉及到回表(即查出来主键后通过主键索引找到剩余元素),也可以在查询时使用了二级索引,如果查询的数据能在二级索引里查询的到,那么就不需要回表。
8、java内存模型,堆内存,由哪些部分组成?
答:我答成运行时数据区了,想想应该是JMM那些解决多线程情况下工作内存与主存数据不统一情况下解决方案。后来面试官说的是堆内存里面的新生代、老年代、原空间哪些以及垃圾回收算法。
9、GC三个算法、哪一个区域使用哪种GC、算法区别?如何回收的?
答:忘了,只记得三块区域数据移动。
10、 数据库索引哪些?
聚簇 二级索引 主键 唯一等等
11、 索引失效的情况
答: like“%%” 联合索引最左的情况
12、索引优化怎么处理? SQL 优化策略, out of the。比如我实际中某个接口,发现它返回很慢,调来发现查询数据库也比较耗时,查询很慢。像这种一个是怎么定位,第二个是怎么解决?
答:源码、Druid监控平台(不确定)
13、 我说我知道接口没反应怎么办,但我不知道到底是接口内部还是 SQL 还是哪。
答:不会
14、 慢查询日志、慢查询日志包括执行计划,这个知道吧。对,这你刚才不是说索引可能会失效,但是有时候它其实有时候我们分析,但有些条件其实按照我们常规也分析也会出异常。它至于索引是不会失效,它是根据他内部有一个执行器,有一个优化器的他来决定的。真实有没有失效,我们可以通过执行计划来查看。执行计划你一般怎么使用?
答:不会
15、 ES用过吗?
用过一点、了解一些
16、 IOC、AOP原理 场景
IOC思想容器创建对象,所以就从这一点出发,逐步实现Bean定义注册、Bean对象生成使用代理、反射、对bean的扩展,比如BeanPostProcessor这些。AOP就是面向切面编程
17、 AOP场景
答:思考半天,数据库参数设置 ?
行,他最常用,包括他们官网上应该也写。一般正常。现在可能是用处理日志,把系统的一些非核心业务功能直接直接脱离出来。它是面向切面的,脱离出系统的业务。一般是用于处理一些日志之类的
18、 Spring写了好几种设计模式,说说设计模式把?
模板、策略、适配器、简单工厂、观察者等等
19、分库分表的时候,UUID or ID有什么需要注意的?
答:思考中。。。
因为,它这种像分布分表,你能直接用,我们有一个自增ID。自增 ID 确实其实是有顺序的,它的性能是比较高的。但是分布分表的时候,我们可以直接用自增的ID。
20、或者如果你使用自身ID,如果应用到杠微服务分布式,会发生什么问题?
答:可能会重复
对hmm,对,主要是一些旧项目,他们有的人没考虑到微服务,因为在实际工作中他们会使用自己的IT。但后期他们想迁移表或想改成那种微服务的时候,结果就会发生这种自动ID,导致项目没法迁移。旧数据。
21、 读写分离你是做的是数据库的读写分离,像数据库的主从复制原理讲一下。
答:忘了
22、深度学习算transformer 编码器 解码器
答: 了解过,但不是很懂
23、CNN优化器解决过拟合问题?
答:optimize那个,忘了
24、反问