Day527&528.图灵学院之面试题③ -面经

Posted 阿昌喜欢吃黄桃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day527&528.图灵学院之面试题③ -面经相关的知识,希望对你有一定的参考价值。

图灵学院之面试题③

一、HashMap的扩容机制原理是什么?

新建一个老数组的两倍大小的新组,遍历老数组,且若含有链表,就再遍历(套了两层遍历)。根据hash+新数组容量计算出新数组数组下标位置,并转移到新数组。

  • 1.8
    若遍历链表时,发现为红黑树,依然重新计算新数组所对应的下标(老数组对应一个红黑色的位置,不代表新数组的位置是相同) ,经过再计算后,再次判断是否需要建立生成红黑色(代表扩容后,之前的红黑树会被拆分为链表+链表链表+红黑树不同位置的红黑树仍然是相同位置的红黑树)。

二、ConcurrentHashMap的扩容机制是什么?

  • 1.7
    最外层是Segment数组,每个数组里面包着一个HashMap,扩容是Segment数组对应内容的HashMap独立扩容,类似HashMap的扩容

三、ThreadLocal的底层原理


四、如何理解volatile关键字?


五、ReetrantLock中的公平锁和非公平锁的底层原理


六、ReetrantLock中的tryLock()和lock()方法的区别是什么?


七、CountDownLatch和Semaphore的区别和底层实现原理


八、Synchronized的偏向锁、轻量级锁、重量级锁


九、线程池的底层工作原理是什么?


十、JVM中哪些是线程的共享区域?


十一、JVM中哪些可以被作为GCRoots?


十二、你们项目如何排查JVM问题?


十三、说说类加载双亲委派机制是什么?


十四、Tomcat中为什么要使用自定义类加载器?


十五、Tomcat如何进行优化?


十六、浏览器发出了一个请求到收到了响应,期间经历了什么步骤?


十七、跨域请求是什么?对应有什么问题?如何解决?

判断是否同源协议+域名ip+端口是否一致


十八、Spring中的Bean是线程安全的吗?

判断Bean是否有无状态,Bean自己本身是否有对线程安全进行控制


十九、ApplicationContext和BeanFactory有什么区别?

前者继承后者,且拥有更多的功能,如事件发布国际化获取环境变量


二十、Spring中事务是如何实现的?


二十一、Spring中什么时候@Transactional注解会失效?


二十二、Spring容器的启动流程是怎么样的?


二十三、Spring中用到了哪些设计模式?


二十四、SpringMVC的底层执行流程是什么?

个人博客文章地址


二十五、SpringBoot中常用的注解和底层的原理是什么?


二十六、SpringBoot是如何启动Tomcat的?

先创建Spring容器,利用@CondtionOnClass注解判断是否有Tomcat依赖,有就启动Tomcat对应的Bean,并创建Tomcat对象,且绑定端口,启动Tomcat。


二十七、SpringBoot中配置文件的加载顺序是怎么样的?


二十八、Mybatis的优缺点是什么?


二十九、Mybatis中#和$写法的区别是什么?


三十、什么是CAP理论


三十一、什么是BASE理论


三十二、什么是RPC


三十三、分布式ID是什么?有哪些解决方案?


三十四、分布式锁的使用场景是什么?有哪些试下方案?


三十五、什么是分布式事务?有哪些解决方案?


三十六、什么是ZAB协议?


三十七、为什么Zk拿来做注册中心?


三十七、zk的领导者选举流程是什么?


三十八、zk中节点与节点数据之间是如何同步的?


三十九、Dubbo支持哪些负载均衡策略?


四十、Dubbo是如何完成服务导出的?


四十一、Dubbo是如何完成服务引入的?

四十二、Dubbo的架构设计是什么?


四十三、SpringCloud有哪些组件?作用是什么?


四十四、SpringCloud和Dubbo的区别是什么?


四十五、什么是服务雪崩?什么是服务限流?


四十六、什么是服务熔断?什么是服务降级?区别是什么?


四十七、SOA、分布式、微服务有什么关系和区别?


四十八、BIO、NIO、AIO是什么?


四十九、零拷贝是什么?


五十、Netty是什么?和Tomcat的区别是什么?特点是什么?


五十一、Netty的线程模型是什么样的?


五十二、Netty的高性能体现是在哪些方面?


五十三、Redis有哪些数据结构?分别对应的使用场景是什么?


五十四、Redis分布式锁底层的实现是什么?


五十五、Redis的主从复制的核心原理是什么?


五十六、缓存雪崩、缓存击穿、缓存穿透是什么?


五十七、Redis和mysql如何保证数据一致?


五十八、Explain语句结果中各个字段分别表示什么意思?


五十九、索引覆盖是什么?

查找索引的过程中,直接在二级索引上找到结果,无需回表,并直接返回


六十、Mysql中索引的最左前缀原则是什么?


六十一、Innodb是如何实现事务的?


六十二、B树和B+树的区别是什么?为什么Mysql选择B+树?


六十三、Mysql锁有哪些?如何理解?


六十四、Mysql慢查询如何优化?


六十五、消息队列有哪些作用


六十六、死信队列是什么?延时队列是什么?


六十七、Kafka为什么吞吐量这么大

缓存消息,一次发送,减少网络IO


六十八、Kafka消费者push和pull方案的优缺点是什么?


六十九、RocketMQ的底层实现原理


七十、消息队列如何保证消息的可靠性?


七十一、TCP的三次握手和四次挥手是什么?


七十二、String、StringBuffer、StringBuilder的区别是什么?


七十三、ArrayList和LinkedList的区别是什么?


七十四、CopyOnWriteArrayList的底层实现原理是什么?


七十五、说一下HashMap的put()方法


七十六、线程之间如何通讯的?


七十七、Spring的事务机制是什么?


七十八、Dubbo的负载均衡策略是什么?


七十九、jdk1.7-jdk1.8HashMap的底层发生了什么变化?


八十、jdk1.7-jdk1.8 JVM虚拟机发生了什么变化?


八十一、如何实现AOP,项目哪些地方用到了AOP


八十二、Spring中的后置处理器中有什么作用?


八十三、说说你了解的分布式锁的实现方案有哪些?


八十四、Redis集群的实现方案有哪些?


八十五、

以上是关于Day527&528.图灵学院之面试题③ -面经的主要内容,如果未能解决你的问题,请参考以下文章

Day530.图灵学院之面试题④ -面经

Day507.图灵学院之面试题② -面经

Day489&490&491.尚硅谷之高频重点面试题③ -面经

Day489&490&491.尚硅谷之高频重点面试题③ -面经

Day489.尚硅谷之高频重点面试题③ -面经

Day481&482.尚硅谷之高频重点面试题① -面经