
面试题
文章平均质量分 85
李大寶
这个作者很懒,什么都没留下…
展开
-
Kafka面试题
一、Kafka数据怎么保障不丢失?二、kafka数据分区和消费者的关系?三、kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序?四、kafka的消费者是pull(拉)还是push(推)模式,这种模式有什么好处?五、Kafka 的设计架构?原创 2022-09-04 23:00:31 · 1255 阅读 · 0 评论 -
spark高频面试题
一、Spark 的运行流程?二、Spark 有哪些组件?三. Spark 中的 RDD 机制理解吗?四、RDD的操作分类五、如何区分 RDD 的宽窄依赖?为什么要设计宽窄依赖?六、RDD 持久化原理?七、Checkpoint 检查点机制?八、Checkpoint 和持久化机制的区别?九、RDD中reduceBykey与groupByKey哪个性能好,为什么十. Spark SQL 是如何将数据写到 Hive 表的?十一、Spark RDD转换成DataFrame的两种方式原创 2022-09-03 21:53:58 · 1730 阅读 · 0 评论 -
数据仓库中基本概念
数据仓库(Data Warehouse)是一个面向主题的、集成的、稳定的且随时间变化的数据集合,用于 支持管理人员的决策。原创 2022-08-29 10:48:45 · 2560 阅读 · 1 评论 -
Hadoop高频面试题
一、HDFS集群架构(HDFS组织架构)二、HDFS数据写流程三、HDFS数据读流程四、MapTask和ReduceTask工作机制 (也可回答MapReduce工作原理)五、 小文件过多会有什么危害,如何避免六、hadoop(mapReduce)数据倾斜问题七、YARN集群的架构和工作原理八、YARN的任务提交流程是怎样的九、YARN的资源调度三种模型十、NameNode在启动的时候会做哪些操作十一、NameNode在启动的时候会做哪些操作十二、HDFS在读取文件的时候,如果其中一原创 2022-09-01 19:22:22 · 5566 阅读 · 0 评论 -
BIO、NIO、AIO区别
1、BIO的特点就是每次一个客户端接入,都要在服务端创建一个线程来服务于这个客户端,所以如果有很多个客户端,就会对应成千上万个服务端线程,这会导致服务端负载过高,甚至卡死。2、NIO是同步非阻塞io,客户端和服务器端通过channel(通道)通讯,实现了多路复用 3、AIO是NIO的升级,实现了异步非阻塞,异步IO的操作基于事件和回调机制 buffer实际上是一个容器,内部通过一个连续的字节数组存储I/O上的数据,在nio中,channel在文件、网络上对数据的读取或是写入都必须通过bufferselect原创 2022-06-26 22:05:55 · 2356 阅读 · 0 评论 -
微服务常见面试题
Spring cloud是⼀个基于Spring Boot实现的服务治理框架,⽤于微服务架构中管理和协调各个服务。它提供了一系列组件方便用户快速搭建微服务,如服务发现注册nacos、 配置中⼼nacos、服务网关gateway,客户端负载配置Ribbon、服务间调用openfeign、短路器Hystrix、分布式事务服务Seata等nacos采用的是pull模式(客户端从服务端主动拉取数据),但不是简单的pull模式,而是一种长轮训机制,它结合了push和pull两者优势,客户端采用长轮训的方式定时发起pul原创 2022-06-26 16:30:20 · 1694 阅读 · 0 评论 -
java中的锁面试题
synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid 设置为其线程 id,再次进入的时候会先判断 threadid 是否与其线程 id 一致,如果一致则可以直接使用此对象,如果不一致,则升级偏向锁为轻量级锁,通过自旋循环一定次数来获取锁,执行一定次数之后,如果还没有正常获取到要使用的对象,此时就会把锁从轻量级升级为重量级锁,此过程就构成了 synchronized 锁的升级。锁的升原创 2022-06-18 12:12:13 · 10246 阅读 · 0 评论 -
Java集合框架面试题
HashMap由数组+链表组成的,线程非安全的,其内部是一个数组,数组的每个元素都是一个单线的链表,链表的每个元素都是嵌套类的entry实列。entry实列包含四个属性:key、value、hash值和用于指向单向链表下一个元素的next,HashMap底层是通过链表来解决hash冲突的为了减少链表遍历的开销,java8对hashmap进行优化,将数据格式修改成数组+链表或是红黑树。在链表元素超过8个以后,hashmap会将链表转换成红黑树结构提高查询效率JDK1.7的ConcurrentHashMap:底原创 2022-06-18 09:13:55 · 194 阅读 · 0 评论 -
限流、分库分表面试题
限流可以分为技术层限流和业务层限流一种是限制速率(qps),比如rateLimiter,nginx的limit_req模块一种是限制并发数,也就是根据系统的最大资源量进行限制,比如数据库连接池,线程池,nginx的limit_conn模块比如在秒杀系统中,一个商品库存只有100件商品,现在有两万人抢购,没必要放两万人进来,只需要放前500个人进来,后面的人直接返回已售完即可比如对于电商的订单表来说,如何拆分呢(订单id、用户id、商户id)1、建立一个映射表建立建立辅助维度和主维度的映射关系(商户id和用户原创 2022-06-13 23:13:16 · 235 阅读 · 0 评论 -
java中多线程常见面试题
线程池本质上是一种池化技术,而池化技术是一种资源复用的思想,比较常见的有连接池、内存池、对象池。减少线程的频繁创建和销毁带来的性能开销,因为线程创建会涉及到CPU上下文切换、内存分配等工作。线程池本身会有参数来控制线程创建的数量,这样就可以避免无休止的创建线程带来的资源利用率过高的问题,起到了资源保护的作用。线程池参数七大参数corePoolsize 核心线程数:正常情况下创建的工作的线程数,这些线程创建后并不会立马消除,一种常驻住线程maxinumPoolSize 最大线程数:表示允许创建的最大线原创 2022-06-07 09:31:19 · 12759 阅读 · 0 评论 -
设计模式常见面试题
1、单列模式:单列模式是保证系统唯一性的重要的手段,单列模式首先通过建类的实列化方法私有化来防止程序通过其它的方式创建该类的实列,然后通过提供一个全局的唯一获得该类的实列的方法来帮助用户来获得该类的实例,用户只需要也只能通过调用该方法获得全局类实列常见的方法:1、懒汉模式 2、饿汉模式 3、双重校验锁 4 静态内部类2、工厂模式:工厂类可以根据条件生成不同的子类实例,这些子类有一个公共的抽象父类并且实现了相同的方法,但这些方法针对不同的数据进行了不同的操作,当得到子类的实列后,开发人员调用基本的方法而不必考原创 2022-06-06 22:02:16 · 6240 阅读 · 0 评论 -
elasticsearch常见面试题
1、什么是elasticsearch?2、什么是正向索引?什么是倒排索引?3、说说elasticSearch的数据模型核心概念4.说说你们公司 es 的集群架构,索引数据大小,以及一些调优手段 。5、Elasticsearch 冷热分离和索引周期管理6、搜索结果处理-深度分页问题处理方案7、分词器的作用是什么8、详细描述一下 Elasticsearch 搜索的过程9、详细描述⼀下Elasticsearch索引10、ES中match和term差别对比,text和keyword区别原创 2022-06-05 21:31:41 · 3058 阅读 · 0 评论 -
mysql常见面试题
一、联合索引是什么?为什么需要注意联合索引中的顺序?什么是最左前缀匹配原则二、事务的基本特性和隔离级别,多事务的并发进行一般会造成以下几个问题三、如何对mysql进行优化四、MySQL 索引失效的场景五、数据库中,select where group by having 执行顺序六、Mysql死锁问题七、如何避免死锁问题八、mysql的多版本控制(MVCC)原创 2022-06-05 21:29:14 · 562 阅读 · 0 评论 -
分布式常见面试题
幂等性的核心思想,其实就是保证这个接口的执行结果只影响一次,后续即便再次调用,也不能对数据产生影响,之所以要考虑到幂等性问题,是因为在网络通信中,存在两种行为可能会导致接口被重复执行。所以在程序设计中,对于数据变更类操作的接口,需要保证接口的幂等性。分布式锁,是一种跨进程的跨机器节点的互斥锁,它可以用来保证多机器节点对于共享资源访问的排他性。我觉得分布式锁和线程锁本质上是一样的,线程锁的生命周期是单进程多线程,分布式锁的声明周期是多进程多机器节点。在本质上,他们都需要满足锁的几个重要特性:1、关系型数据库,原创 2022-06-05 17:55:11 · 4057 阅读 · 0 评论 -
jvm中常见的面试题
1、导致CPU飙高的原因有几个方面(1)CPU上下文切换过多,对于CPU来说,同一时刻下每个CPU核心只能运行一个线程,如果有多个线程要执行,CPU只能通过上下文切换的方式来执行不同的线程,较多的上下文切换会占据大量CPU资源(2)CPU资源过度消耗,也就是在程序中创建了大量的线程,或者有线程一直占用CPU资源无法被释放,比如死循环!2、解决方案我们可以通过top命令,找到CPU利用率较高的进程。在通过top-hp pid找到进程中CPU消耗过高的线程,通过jstack获得线程的Dump日志,定位到线程日志原创 2022-06-05 11:45:18 · 249 阅读 · 0 评论 -
Spring系列面试题(Spring、SpringMvc、SpringBoot)
一、springboot自动配置原理二、springmvc工作流程三、描述下spring bean 生命周期四、Spring中的单列bean是线程安全的吗?五、Spring事务什么时候会失效六、Spring的事务传播机制七、mybatis里的#{}和${}的区别八、谈谈对ioc的理解九、谈谈对aop的理解十、springboot核心注解是什么,它有哪些注解组成原创 2022-06-05 00:08:38 · 2301 阅读 · 0 评论 -
rabbitmq常见面试题
一、rabbitmq的应用场合二、如何处理消息队列中里积压问题三、如何确保消息不会丢失四、如何保证消息不会重复消费五、说说项目中为什么选择rabbitmq,而是其他消息中间键六、死信队列和延迟队列七、消息成为死信的三种情况,如何设置超时属性八、rabbitmq有几种广播类型九、rabbitmq重要的组件十、如何保证RabbitMQ的⾼可⽤?原创 2022-06-03 23:57:37 · 2454 阅读 · 0 评论 -
redis常见面试题
string(字符串) 它能够存储任何形式的数据,包括字符串、图片、视频等,允许单个字符类型的最大容量为512MB,一般常用在需要计数的场景list(列表) Redis 的 list 的实现为一个 双向链表,即可以支持反向查找和遍历,更方便操 。发布与订阅或者说消息队列hash(字典) 常用在系统中对象数据的存储。电商网站购物车的设计与实现。为了区别与Redis中的键值对的称呼,hash中的键称为field,hash(字典) 是由field和关联的value组成的map,其中field和value都是字符串原创 2022-06-02 23:25:25 · 865 阅读 · 0 评论 -
java基础常见面试题
一、java面向对象有哪些特征继承、封装、多态封装说明一个类行为和属性与其它类得关系,隐藏了类的内部实现机制,对外界而言他的内部细节是隐藏的,暴露给外界的是他的访问方法继承是父类和子类的关系,是从已有的类中派出新的类。多态说的是类和类的关系,两个类由于继承关系,存在方法的重写,可以调用父类指向子类淡定对象,多态三要素:继承、重写、父类指向子类对象二、ArrayList和LinkedList区别ArrayList底层是动态数组的结构实现的LinkedList底层是双向链表的结构实现原创 2022-05-18 19:03:44 · 213 阅读 · 0 评论