9.19面试总结(ximei)

西美面试总结
1.项目的具体细节:提供哪几个服务,服务如何通讯
项目需完善

2.事物管理:transaction manager
事务的隔离级别:read uncommited(oracle 默认) repeatable read(mysql 默认)
事务的生命周期:开始、结束(提交、回滚)、保存点

3.aop原理
aspect oriented programming,面向切面编程,将非业务且必要的代码进行抽取封装,形成高度集中的公共逻辑处理对象,并通过动态代理将公共功能切入到具体业务逻辑中。
作用:

在程序运行期间,不修改任何相关源码对已有方法进行增强。

优势:

减少重复代码、提高开发效率、维护方便

4.Spring aop 用到哪些声明


Joinpoint(连接点):每一个被拦截的方法

Pointcut(切入点): 就是拦截方法设置的规则
Advice(通知/增强):前置通知,后置通知,异常通知,最终通知,环绕通知。

Aspect(切面):拦截处理类。是切入点和通知的结合。

Weaving(织入):-把切面加入到对象,并创建出代理对象的过程。

4.如何进行事务的配置,事物传播规则,事务的生命周期
声明式事务管理:侵入性小,把事务从业务代码中抽离出来,使用AOP配置到配置文件中,提高维护性。

DataSourceTransactionManager

<tx:advice>

<aop:config >

<aop:pointcut>

<aop:advisor>

传播规则 默认:PROPAGATION_REQUIRED,如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务(最常用操作)-Spring默认使用的就是此规则

5.数据结构:数组、链表、栈、队列、树

6.hashmap的底层数据结构,jdk1.8以后呢
数组+链表+红黑树

7.springboot初始化
Spring Web Spring Boot Devtools Mybatis Framework Eureka Sever Eureka Discovery Client OpenFeign

8.redis缓存 键值对,用到哪些场景
reids缓存使用场景:1.单点登入存储用户信息 2.存储tree信息

9.activemq如何实现同步
1.将新增信息写入到消息队列中
2.监听器监听队列,并同步索引库

10.多线程,线程状态的追踪
CountdownLatch 倒计时器

11.如何实现hashmap的线程安全
HashTable ConcurrentHashMap
ConcurrentHashMap是 HashMap 的线程安全版,同 Hashtable 相比,ConcurrentHashMap 不仅保证了访问的线程安全性,而且在效率上有较大的提高。
相对 HashMap 和 Hashtable, ConcurrentHashMap 增加了Segment 层,每个Segment 原理上等同于一个 Hashtable, ConcurrentHashMap 为 Segment 的数组。
向 ConcurrentHashMap 中插入数据或者读取数据,首先都要讲相应的 Key 映射到对应的 Segment,因此不用锁定整个类, 只要对单个的 Segment 操作进行上锁操作就可以了。理论上如果有 n 个 Segment,那么最多可以同时支持 n 个线程的并发访问,从而大大提高了并发访问的效率。另外 rehash() 操作也是对单个的 Segment 进行的,所以由 Map 中的数据量增加导致的 rehash 的成本也是比较低的。

12.哪些以链表形式的数据结构:
linkedlist linkedhashset linkedhashmap hashmap

猜你喜欢

转载自www.cnblogs.com/WhiperHong/p/11553224.html