2020第一面——面试题整理

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

更多详情《图解MySQL连接》

你可能感兴趣的:(面试,Java,微服务)