互联网公司对面试者的要求和常见的Java面试题型

 2022-09-15 12:31:54  16 浏览  0 评论   赞

前言;RabbitMQ架构设计面试题:发送方确认机制;Redis面试题;分布式/微服务面试题;Mybatis面试题;MySQL数据库面试题

前言

我先后拜访了一二十家互联网公司,与不同的面试官和面试者进行面对面探讨,深入了解了企业对于面试者的要求和常见的 Java 面试题型。之后我花了大半年的时间,结合自己 4 年多作为面试官的经历,把这些内容整理成文,对 Java 的核心知识点和常见的多道面试题,做了详细的介绍,也是小编的全部分享,希望对你能有所帮助。

一、RabbitMQ架构设计面试题

一、RabbitMQ架构设计面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-1:

Broker:rabbitmq的服务节点

Queue:队列,是RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(轮询)给多个消费者进行消费,而不是每个消费者都收到所有的消息进行消费。

Exchange:交换器。生产者将消息发送到Exchange,由交换器将消息路由到一个或多个队列中。如果路由不到,或返回给生产者,或直接丢弃,或做其它处理。

RoutingKey:路由Key。生产者将消息发送给交换器的时候,一般会指定一个RoutingKey,用来指定这个消息的路由规则。这个路由Key需要与交换器类型和绑定键(BindingKey)联合使用才能最终生效。

Binding:通过绑定将交换器和队列关联起来,在绑定的时候一般会指定一个绑定键,这样RabbitMQ就可以指定如何正确的路由到队列了。

信道:信道是建立在Connection 之上的虚拟连接。当应用程序与Rabbit Broker建立TCP连接的时候,客户端紧接着可以创建一个AMQP 信道(Channel) ,每个信道都会被指派一个唯一的D。

1、RabbitMQ死信队列、延时队列

消息被消费方否定确认,使用 channel.basicNack 或 channel.basicReject ,并且此时requeue 属性被设置为 false 。消息在队列的存活时间超过设置的TTL时间。消息队列的消息数量已经超过最大队列长度。2、rabbitmq如何确保消息发送 ? 消息接收?

发送方确认机制:

一、RabbitMQ架构设计面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-2:

接收方确认机制:

一、RabbitMQ架构设计面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-3:

3、简述kafka架构设计

一、RabbitMQ架构设计面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-4:

4、Kafka在什么情况下会出现消息丢失及解决方案?

5、RabbitMQ镜像队列机制

6、Kafka是pull?push?优劣势分析

7、RabbitMQ事务消息

8、Kafka的性能好在什么地方

9、简述kafka的rebalance机制

10、Kafka中zk的作用

11、kafka怎么处理消息顺序、重复发送、重复消费、消息丢失

完整面试题+答案解析获取方式:关注+转发 后私信关键字【2021】获取

一、RabbitMQ架构设计面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-5:

二、Redis面试题

RDB(Redis Data Base) 和 AOF(Append Only File) 机制

RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。

二、Redis面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-6:

AOF:以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

二、Redis面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-7:

1、redis 主从复制的核心原理

2、简述Redis事务实现

3、Redis线程模型、单线程快的原因

4、缓存雪崩、缓存穿透、缓存击穿

5、Redis的过期键的删除策略

6、redis集群方案

三、分布式/微服务面试题

1、分布式架构下,session 共享有什么方案

2、分布式锁解决方案

3、如何实现接口的幂等性

4、分布式id生成方案

5、CAP理论,BASE理论

6、简述你对RPC、RMI的理解

7、负载均衡算法、类型

8、简述zab 协议

9、zk的数据模型和节点类型

10、dubbo 的整体架构设计及分层

11、zk和eureka的区别

12、简述zk的命名服务、配置管理、集群管理

13、讲下zookeeper watch机制

14、分布式事务解决方案

15、springcloud核心组件及其作用

16、spring Cloud和Dubbo的区别

17、什么是Hystrix?简述实现机制

四、Mybatis面试题

1、mybatis 与Hibernate 有哪些不同?

开发速度的对比:开发工作量的对比:sql优化方面:对象管理的对比:缓存机制对比:2、简述 Mybatis 的插件运行原理,如何编写一个插件。

四、Mybatis面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-8:

3、#{}和${}的区别是什么?

4、mybatis的优缺点

四、Mybatis面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-9:

五、MySQL数据库面试题

1、mysql聚簇和非聚簇索引的区别

2、索引的基本原理

3、mysql索引的数据结构,各自优劣

4、什么是最左前缀原则?什么是最左匹配原则

5、索引设计的原则?

6、关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?

7、InnoDB存储引擎的锁的算法

8、ACID靠什么保证的?

9、事务的基本特性和隔离级别

10、什么是MVCC

11、mysql主从同步原理

12、分表后非sharding_key的查询怎么处理,分表后的排序?

13、简述mysql中索引类型及对数据库的性能的影响

14、mysql执行计划怎么看

15、简述MyISAM和InnoDB的区别

完整面试题+答案解析获取方式:关注+转发 后私信关键字【2021】获取

六、Spring面试题

1、什么是bean的自动装配,有哪些方式?

2、如何实现一个IOC容器

3、spring事务什么时候会失效?

4、spring是什么?

5、spring事务传播机制

6、谈谈你对IOC的理解

7、谈谈你对AOP的理解

8、Spring事务的实现方式和原理以及隔离级别?

9、Spring框架中的单例Bean是线程安全的么?

10、spring 框架中都用到了哪些设计模式?

11、解释下Spring支持的几种bean的作用域。

12、描述一下spring Bean的生命周期?

13、BeanFactory和ApplicationContext有什么区别?

七、spring MVC、Spring Boot面试题

1、springmvc 工作流程

2、spring Boot、Spring MVC 和 Spring 有什么区别

3、spring Boot 自动配置原理?

4、spring MVC的主要组件?

5、什么是嵌入式服务器?为什么要使用嵌入式服务器?

6、如何理解 Spring Boot 中的 Starter

七、spring MVC、Spring Boot面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-10:

八、Java基础

1、GC如何判断对象可以被回收

2、Java类加载器

3、双亲委托模型

4、Java中的异常体系

5、ConcurrentHashMap原理,jdk7和jdk8版本的区别

6、什么是字节码?采用字节码的好处是什么?

7、==和equals比较

8、jdk JRE JVM

9、final

10、hashCode与equals

11、重载和重写的区别

12、String、StringBuffer、StringBuilder

13、接口和抽象类的区别

14、面向对象

15、HashMap和HashTable有什么区别?其底层实现是什么?

16、ArrayList和LinkedList区别

17、List和Set的区别

九、线程、并发相关面试题

1、sleep()、wait()、join()、yield()的区别

2、对线程安全的理解

3、线程的生命周期?线程有几种状态

4、对守护线程的理解

5、Thread、Runable的区别

6、ThreadLocal内存泄露原因,如何避免

7、并发的三大特性

8、并发、并行、串行的区别

9、ThreadLocal的原理和使用场景

10、为什么用线程池?解释下线程池参数?

11、volatile

12、线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?

13、简述线程池处理流程

该资料获取方式:关注+转发后,私信【2021】获取2021最新Java面试题集锦

九、线程、并发相关面试题_互联网公司对面试者的要求和常见的Java面试题型

图50399-11:

最后

小编分享的面试题到这就结束了,整理不易,欢迎大家一起交流,喜欢文章记得关注我点赞哟,感谢支持!重要的事情说三遍,转发+转发+转发,一定要记得转发哦!!!

 

转载请注明:网创网 www.netcyw.cn/b50399.html

()
发表评论
  • 昵称
  • 网址
(0) 个小伙伴发表了自己的观点
    暂无评论

Copyright © 2018-2022 小王子工作室 版权所有 滇ICP备14007766号-3 邮箱:yangzy187@126.com 提供CDN加速/云存储服务