- Spring Cloud 是什么,有哪些组件。
Eureka、Spring Cloud Config、Spring Cloud Bus、Ribbon、Feign 、Hystrix、Sleuth - Eureka作为注册中心,我们是怎么进行服务的注册和发现的?
《SpringCloud Eureka微服务的注册和发现》 - Spring Bean的生命周期。
《请别再问SpringBean的生命周期了!》 - Spring Bean的作用域
singleton、prototype、request、session、global session
《Spring中Bean的五个作用域》(https://blog.youkuaiyun.com/kongmin_123/article/details/82048392) - Spring Aop有几种代理实现方式,分别是什么?
(1) JDK动态代理:用于目标类实现了接口;
(2) Cglib动态代理:用于目标类没有实现接口;
《SpringAOP的两种实现代理模式的详细解读》 - ThreadLocal有什么作用,底层是怎么实现的?ThreadLocal 是线程本地存储,在每个线程中都创建了一个 ThreadLocalMap 对象,每个线程可以访问自己内部 ThreadLocalMap 对象内的 value。通过这种方式,避免资源在多线程间共享》。
《彻底理解ThreadLocal》 - 线程的状态有哪些?
创建、就绪、执行、阻塞、消亡
《线程状态详解》 - synchronized 的作用是什么,存在几种锁机制?
使用 Synchronized是能够实现线程同步的,即加锁。并且实现的是悲观锁,在操作同步资源的时候直接先加锁。
《synchronized四种锁状态的升级》 - HashMap的底层原理,以及发生hash碰撞时,是怎么处理的?
如果存在Hash碰撞就会以链表的形式保存,把当前传进来的参数生成一个新的节点保存在链表的尾部(JDK1.7保存在首部)。而如果链表的长度大于8那么就会以红黑树的形式进行保存。
《HashMap工作原理和扩容机制》 - 常用的设计模式有哪些,以及简述工厂模式的实现,以及单列的实现有哪些,其中双重检查锁依赖了哪些实现?
《设计模式之工厂模式》
双重检查锁实现依赖:volatile ,synchronized
《Java中全面的单例模式多种实现方式总结》 - RabbitMQ存在几种交换机?
Exchange分发消息时根据类型的不同分发策略有区别,目前共四种类型:direct、fanout、topic、headers 。headers匹配AMQP消息的header而不是路由键, headers交换器和direct交换器几乎一致,但性能差很多,目前几乎用不到了。
《RabbitMQ之交换机的四种类型和属性》 - RabbitMQ的消息是如何发送的
《RabbitMQ消息传递流程》 - RabbitMQ如何保证消息的幂等性?
《RabbitMQ 幂等性概念及业界主流解决方案》 - RabbitMQ如何保证消息的准确性?
(1)消息落库,对消息状态进行打标;
(2)消息的延迟投递,做二次确认,回调检查
《RabbitMQ:生产端和消费端的可靠性投递解决方案》 - Mysql的事务是什么?
事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务。事务的四个属性:原子性,隔离性,持久性,一致性
《MySQL事务(TRANSACTION)》 - MySql的事务隔离级别
MySQL | Oracle | 事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|---|---|
支持 | – | 读未提交(read-uncommitted) | 是 | 是 | 是 |
支持 | – | 读以提交(read-committed) | 否 | 是 | 是 |
支持(默认) | 支持(默认) | 可重复读(repeatable-read) | 否 | 否 | 是 |
支持 | 支持 | 串行化(serializable) | 否 | 否 | 否 |
- Mysql内外连接的区别?
- 内连接(inner join):取出两张表中匹配到的数据,匹配不到的不保留
- 外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL
更多详情《图解MySQL连接》