• 资深工程师整理2022年最新面试题汇总


    ArrayList和LinkedList的区别

    Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。 Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据。 缺点: 数组初始化必须指定初始化的长度, 否则报错。 List—是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承Collection。List有两个重要的实现类:ArrayList和LinkedList ArrayList: 可以看作是能够自动增长容量的数组 ArrayList的toArray方法返回一个数组 ArrayList的asList方法返回一个列表 ArrayList底层的实现是Array, 数组扩容实现, LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于 ArrayList.当然,这些对比都是指数据量很大或者操作很频繁。

    HashMap和HashTable的区别

    父类不同 HashMap是继承自AbstractMap类,而Hashtable是继承自Dictionary类。不过它们都同时实现 了map、Cloneable(可复制)、Serializable(可序列化)这三个接口。 对外提供的接口不同 Hashtable比HashMap多提供了elments() 和contains() 两个方法。 elements() 方法继承自Hashtable的父类Dictionnary。elements() 方法用于返回此Hashtable中的 value的枚举。contains()方法判断该Hashtable是否包含传入的value。它的作用与containsValue()一致。事实上, contansValue() 就只是调用了一下contains() 方法。 对null支持不同 Hashtable:key和value都不能为null。 HashMap:key可以为null,但是这样的key只能有一个,因为必须保证key的唯一性;可以有多个key 值对应的value为null。 安全性不同 HashMap是线程不安全的,在多线程并发的环境下,可能会产生死锁等问题,因此需要开发人员自己 处理多线程的安全问题。 Hashtable是线程安全的,它的每个方法上都有synchronized 关键字,因此可直接用于多线程中。 虽然HashMap是线程不安全的,但是它的效率远远高于Hashtable,这样设计是合理的,因为大部分的 使用场景都是单线程。当需要多线程操作的时候可以使用线程安全的ConcurrentHashMap。 ConcurrentHashMap虽然也是线程安全的,但是它的效率比Hashtable要高好多倍。因为 ConcurrentHashMap使用了分段锁,并不对整个数据进行锁定。 初始容量大小和每次扩充容量大小不同 计算hash值的方法不同

    MyBatis 面试题

    • 1、什么是 Mybatis?
    • 2、Mybaits 的优点:
    • 3、MyBatis 框架的缺点:
    • 4、MyBatis 框架适用场合:
    • 5、MyBatis 与 Hibernate 有哪些不同?
    • 6、#{}和${}的区别是什么?
    • 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
    • 8、 模糊查询 like 语句该怎么写?

    ZooKeeper 面试题
    ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。

    • zookeeper 负载均衡和 nginx 负载均衡区别
    • Zookeeper Watcher 机制--数据变更通知
    • 客户端注册 Watcher 实现
    • zookeeper 是如何保证事务的顺序一致性的?
    • Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?
    • zk 节点宕机如何处理?

    Dubbo 面试题
    Spring Eureka 从开源转变为闭源,Consul 正在崛起,而 Dubbo 又开始重新更新。目前市场上仍有不少公司使用dubbo我们也需要继续学习。

    • 为什么要用 Dubbo?
    • 默认使用的是什么通信框架,还有别的选择吗?
    • 服务调用是阻塞的吗?
    • 一般使用什么注册中心?还有别的选择吗?
    • 默认使用什么序列化框架,你知道的还有哪些?
    • Dubbo 的整体架构设计有哪些分层?

    Elasticsearch 面试题

    • elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
    • elasticsearch 索引数据多了怎么办,如何调优,部署
    • elasticsearch 是如何实现 master 选举的
    • Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
    • 详细描述一下 Elasticsearch 更新和删除文档的过程。
    • Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?(文末附面试答案)

    Redis面试题
    随着应用研发技术的不断成熟,Redis 缓存技术已经成为后台研发同学必备的能力之一。在很多公司面试的过程中,都必不可少地考察 Redis 知识点的掌握。

    • 使用 Redis 有哪些好处?
    • Redis 是单进程单线程的?
    • Redis 的持久化机制是什么?各自的优缺点?
    • Redis 常见异常问题和解决方案(雪崩,穿透...)
    • redis 过期键的删除策略?
    • 为什么 redis 需要把所有数据放到内存中?
    • Redis 集群的主从复制模型是怎样的?
    • Redis key 的过期时间和永久有效分别怎么设置?

    MySQL 面试题
    如今互联网行业用的最多就是 MySQL,然而对于高级 Web 面试者,尤其对于寻找 30k 下工作的求职者,很多 MySQL 相关知识点基本都会涉及,如果面试中,你的相关知识答的模糊和不切要点,基本大多稍好公司的面试官,基本也不会对你有兴趣,毕竟稍微量大的项目,最终都会让你去深入数据库,而且最终的大多瓶颈首先也会出现在数据库。

    • MySQL 相关存储引擎。
    • MySQL 索引实现原理。
    • MySQL 数据库锁。
    • MySQL 的 SQL 调优。
    • MySQL 分表分库全局 ID。

    Java 并发编程面试题

    • 在 java 中守护线程和本地线程区别?
    • 什么是多线程中的上下文切换?
    • Java 中用到的线程调度算法是什么?
    • 什么是线程组,为什么在 Java 中不推荐使用?
    • 在 Java 中 Executor 和 Executors 的区别?
    • 并发编程三要素?
    • 什么是线程池?有哪几种创建方式?

    Spring 面试题

    • 1. 谈谈对 Spring IoC 的理解?
    • 2. 谈谈对 Spring DI 的理解?
    • 3. BeanFactory 接口和 ApplicationContext 接口不同点是什么?
    • 4. 请介绍你熟悉的 Spring 核心类,并说明有什么作用?
    • 5. 介绍一下 Spring 的事务的了解?
    • 6. 介绍一下 Spring 的事务实现方式?
    • 7.什么是 Spring 的依赖注入?(文末附面试答案)

    JVM面试题

    • JVM三大性能调优参数,JVM 几个重要的参数
    • JVM调优
    • JVM内存管理,JVM的常见的垃圾收集器,G1垃圾收集器。GC调优,Minor GC ,Full GC 触发条件
    • Java内存模型
    • Java垃圾回收机制
    • 描述JVM中一次Full gc过程
    • Java 中都有哪些引用类型?
    • JVM中类加载机制,类加载过程,什么是双亲委派模型?,类加载器有哪些
      如何判断是否有内存泄露?定位 Full GC 发生的原因,有哪些方式?

    Spring Cloud 面试题

    • 什么是Spring Cloud?
    • 使用Spring Cloud有什么优势?
    • 服务注册和发现是什么意思?Spring Cloud如何实现?
    • 负载平衡的意义什么?
    • 什么是Hystrix?它如何实现容错?
    • 什么是Hystrix断路器?我们需要它吗?
    • 什么是Netflix Feign?它的优点是什么?
    • 什么是Spring Cloud Bus?我们需要它吗?

    Kafka面试题

    • Kafka 与传统 MQ 消息系统之间有三个关键区别?
    • 讲一讲 kafka 的 ack 的三种机制?
    • 消费者故障,出现活锁问题如何解决?
    • kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?
    • kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。

    看完上面的内容,相信大家已经有了清晰的目标与方向,接下来就是查找学习资料了,我们为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考,学习资料包内容及领取方法如下:

  • 相关阅读:
    致编辑,将语雀文档迁移到csdn
    服务器中毒了——菜是原罪
    Spire.Office for Java 7.10.4 ~Spire.Office 旗舰版
    窗口函数笔记
    Rust 基础(六)
    JVM-堆中线程私有空间TLAB(Thread Local Allocation Buffer)
    16-Linux部署Spark环境
    Java如何使用Hutool执行日期的加法和减法操作?
    vue总结(一)
    kafka如何保证消息不丢失
  • 原文地址:https://blog.csdn.net/m0_62051288/article/details/126664342