3年经验Java面试,题目和答案

Posted Java面试攻略

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3年经验Java面试,题目和答案相关的知识,希望对你有一定的参考价值。


1、Spring是怎么解决循环依赖的?



2、Spring Boot自动配置原理



3、Spring Cloud之Eureka原理


4、作为服务注册中心,Eureka和Zookeeper有什么区别?



5、Zookeeper是怎么保证数据一致性的?Zookeeper Leader选举过程是怎样的?(Zab协议)



6、Redis String类型的内部编码有哪些类型?



7、Redis如何实现分布式锁?


8、使用RocketMQ,如何确保消息不丢失?

  • 在生产阶段,你需要捕获消息发送的错误,并重发消息。
  • 在存储阶段,你可以通过配置刷盘和复制相关的参数,让消息写入到多个副本的磁盘上,来确保消息不会因为某个 Broker 宕机或者磁盘损坏而丢失。
  • 在消费阶段,你需要在处理完全部消费业务逻辑之后,再发送消费确认。


9、使用RocketMQ,如何保证消息不重复消费?

在消费的时候做好幂等性处理,常见的方案如下:
在发送消息时,给每条消息指定一个全局唯一的 ID。消费时,先根据这个 ID 检查这条消息是否有被消费过,如果没有消费过,才更新数据,然后将消费状态置为已消费


10、垂直分表和水平分表的区别?

垂直分表:适用于一个表有很多个字段的情况,将原先一个表中的某些字段拆出来,单独放到一个或者多个表。

水平分表:根据具体的切分规则,将数据划分到不同的表上面。


11、一致性哈希算法的原理



12、mysql索引底层原理


13、innodb引擎MVCC原理


14、MySQL回表

MySQL里有2种类型的索引:一类是聚簇索引,一类是非聚簇索引(也叫二级索引)。

聚簇索引存储了完整的行记录数据,而非聚簇索引只存储索引列的数据和主键id或者行号(InnoDB里是存主键id,MyISAM里是存行号)。

回表指的是,从二级索引上过滤出符合条件的数据行的id或者行号之后,再去聚簇索引或者数据文件(InnoDB是到聚簇索引中去查,MyISAM是到数据文件中查,因此MyISAM没有聚簇索引)中查询完整的记录行。

3年经验Java面试,题目和答案


文章都看完了不点个

以上是关于3年经验Java面试,题目和答案的主要内容,如果未能解决你的问题,请参考以下文章

4年经验Java面试,题目及答案

面试经验丨百度 测试开发工程师 面试题集(含面试题答案),来瞧瞧

分享互联网2021年最新Java面试题汇总整理-附详细答案解析

java两年经验面试都会问啥问题

Java开发面试题,3年工作经验的Java程序员面试经

Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD试试~