Day505&506.图灵学院之面试题① -面经

Day505&506.图灵学院之面试题① -面经,第1张

Day505&506.图灵学院之面试题① -面经 图灵学院之面试题① 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、分布式ID是什么?有哪些解决方案?


49、分布式使用场景是什么?有什么实现方案?

redisson


50、负载均衡算法有哪些?


51、缓存击穿/缓存穿透/缓存雪崩是什么?解决方案是什么?


52、MyISam和Innodb的区别?


53、零拷贝是什么?


54、浏览器发出一个请求到收到响应经历了哪些主要流程


55、项目中如何排除JVM问题?


56、消息队列如何选型?


57、深拷贝与浅拷贝的区别


58、在Java异常处理机制中,什么时候应该抛出异常,什么时候该捕获异常


59、什么是base理论


60、什么是CAP理论


61、什么是MVCC?


62、什么是RDB和AOF,区别是什么?


63、什么是RPC


64、什么是STW?


65、什么是ZAB协议?


66、什么是分布式事务,有哪些实现方案?


67、什么是服务熔断?什么是服务降级?区别是什么?


68、什么是服务降级?什么是服务限流?


69、什么是中台?


70、什么是字节码?字节码的好处是什么?


71、事务的隔离级别有哪些,且基本特性是什么?


72、数据一致性模型有哪些?


73、说说线程安全的理解


74、说说双亲委派机制


75、说一下HashMap的put()方法


76、死信队列是什么?延迟队列是什么?


77、MySql索引的基本原理


78、索引覆盖是什么?


79、ConcurrentHashMao的扩容机制是什么?


80、谈谈你对AQS的理解,AQS如何实现可重入锁?


81、谈谈你对IOC的理解



82、为什么zk可以作为注册中心?


83、线程池的底层原理是什么?


84、为什么线程池不是先添加线程,而是加入队列?


85、消息队列如何保证消息可靠性?


86、消息队列的作用有哪些?


87、雪花算法的原理


88、一个对象被加载到JVM,再被清楚,都经历了什么?


89、怎么拆分微服务?


90、怎么确定一个对象是否需要被回收?


91、最左前缀原则是什么?


92、ApplicationContext和BeanFactory的区别是什么?


93、ArrayList和linkedList的区别


94、JDK和JRE和JVM的区别


95、hashcode和eqluas的关系


96、String、StringBuilder、StringBuffer的区别


97、泛型中extend和super的区别

前者要求,所填写的?必须是T的子类
后者要求,锁添加的?必须是T的父类


98、==和eqluas的区别

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5703197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存