Day505.图灵学院之面试题① -面经
Posted 阿昌喜欢吃黄桃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day505.图灵学院之面试题① -面经相关的知识,希望对你有一定的参考价值。
图灵学院之面试题①
1、B树和B+树的区别,为什么mysql使用B+树
2、CopyOnWriteArrayList的底层原理是怎样的
- ⾸先ArrayList是线程不安全的。
- CopyOnWriteArrayList是
线程安全
的,其为解决前者线程不安全的情况 - 它内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素时,会
复制⼀个新的数组
,写操作在新数组上进⾏,读操作在原数组上进⾏并且,写操作会加锁
,防⽌出现并发写⼊丢失数据的问题 - 写操作结束之后会把原数组指向新数组
- CopyOnWriteArrayList允许在写操作时来读取数据,⼤⼤提⾼了读的性能,因此
适合读多写少
的应⽤场景,但是CopyOnWriteArrayList会⽐较占内存
,同时可能读到的数据不是实时最新的数据,所以不适合实时性要求很⾼的场景
3、Dubbo的架构设计是怎么样的?
4、Dubbo是如何服务导出的?
5、Dubbo是如何服务引入的?
6、Dubbo支持哪些负载均衡策略
7、epoll和poll的区别
8、Explain语句结果中各个字段表示什么
9、HashMap的扩容机制
扩容针对的是数组扩容
,链表是不需要扩容的
10、Innodb是如实实现事务的?
11、Java死锁如何避免?
12、Java中的异常体系是怎么样的?
13、Java中有哪些类加载器
14、Java集合类1.7-1.8HashMap的变化
15、JVM中哪些垃圾回收算法
16、JVM运行时数据区中哪些是线程共享的部分?
17、Mybatis的优缺点
18、#和$的区别
19、MySql慢查询优化方案
20、MySql锁有哪些,如何理解
21、Redis和MySql如何保证数据一致性?
22、Redis中有哪些数据结构,且对应使用场景是什么?
23、ReentrantLock中tryLock()和lock()方法的区别是什么?
24、ReentrantLock中公平锁和非公平锁的实现是什么?
25、RocketMQ的事务消息是如何实现的?
26、SOA、分布式、微服务之间有什么关系?
27、SpringBoot是如何启动Tomcat的
28、SpringBoot常用注解及其底层实现
29、SpringCloud和Dubbo的区别
30、SpringCloud中有哪些常用组件,且作用是什么?
31、Spring容器启动的流程
32、Spring事务的传播机制
33、Spring事务什么时候会失效
34、Spring中的Bean是否线程安全?
最终看这个bean是否线程安全,主要看这个bean里面的代码是怎么写的,看里面的属性、方法是否的synchronzied、lock等…而不是单纯就通过Bean就可以判断是否线程安全
35、Spring中Bean创建的生命周期有哪些步骤?
36、Spring中的事务是适合实现的?
37、Sychronized的偏向锁(递归锁/可重入锁)、轻量锁、重量锁的区别
38、Synchronized和ReentrantLock的区别
39、TCP中的3次握手和4次挥手是什么?
40、ThreadLocal的底层原理
41、zookeep和eureka的区别
42、Zookeep中节点之间的数据是如何同步的?
先同步从节点日志先,然后主节点收到半数一下,就异步发送,让从节点们正式同步,从节点成功后就发送commit给主节点同步成功,然后主节点就返回客户端操作成功
43、Zookeep领导者选举的流程是怎么样的?
一上来每个节点都会投票给自己,然后发现会投不出来领导者。之后每个节点会跟其他节点进行一一比较pk,择优顺序比较zxid、myid,有一个大的就获得选票。每个节点都相互比较pk,并相互告知直接的票数是多少,最后当有一个节点的票数大于半数以上,他就会被选成领导者
44、并发、并行、串行之间的区别
45、常见的缓存淘汰算法有哪些?
46、单例模式和单例Bean的区别
47、守护线程的理解
48、
以上是关于Day505.图灵学院之面试题① -面经的主要内容,如果未能解决你的问题,请参考以下文章