助力秋招-独孤九剑破剑式 | 10家企业面试真题
来源:https://dwz.cn/HNZhWiD4作者:在IT中穿梭旅行 · 逆流而上Mr李
By 大数据技术与架构
场景描述:这篇文章是来自一个《大数据技术与架构》的一个读者-逆流而上Mr李,作者总结了自己在应聘过程中的面试题以及经验,珍贵的什么程度?也许你下次的问题就在这上面。多达10家企业面试的一手资料。
关键词:面试 大数据 【声明】本文由《大数据技术与架构》读者提供,未经授权不得转载。
大数据开发方向知识图谱,请点击下面的连接:
《独孤九剑剑谱总纲 | 大数据方向学习面试知识图谱》
【破剑式】第一要义:只攻不守。
腾讯
关键词【Java基础】【数据结构】【操作系统】
【算法】【数据库】【缓存】
- 自我介绍
- 介绍一下你在项目中的承担的任务
- 你对哪种语言熟悉
- 线程池使用过吧,说说线程池中有哪些关键字 具体使用方法。
- 说说hashMap 使用的是哪种数据结构,
- 说说hashMap 和 ConcurrentHashMap 的区别
- 为啥hashMap是线程不安全的?
- 锁机制怎么使用的?
- 如何查看linux 内存占用情况
- 如何在4亿个数字中去重
- 快速排序的原理及实现
- 递归算法如何查询
- 简单介绍一下项目中引用Springboot是解决了什么问题,有什么优点?
- mybatis和hibernate框架有什么区别?
- 使用muybatis有没有用到om对象?
- java语言中 重写和重载有什么区别?
- 我看你用到kafka,kafka主要解决什么问题呢?
- kafka如何实现消息是有序的?
- kafka如何实现多线程的消费?
- hashmap和hashtable 有什么区别?
- 简单介绍一下java的生命周期有哪些阶段吗?
- 对数据库了解吗? 一个场景,现在数据库执行过长,如何对它进行优化?
- 简单谈一下数据库中的悲观锁和乐观锁怎么理解的?
- 说一下数据库有哪些索引类型,有什么优缺点?(主键索引)
- 谈谈数据库的事务(ACID特性)
- 操作系统的划分有哪些?
- 什么是死锁?死锁产生有哪些条件?(互斥条件,请求与保持条件,循环等待条件,不可剥夺条件)
- 进程间通信有哪些方式?(管道,信号量,信号,消息队列,共享内存,套接字等方式)
- tcp协议有哪些计时器?它分别是做什么的?
- 操作系统之间有用户态和内核态,他们之间有什么区别?
- 为什么需要内核态?什么时候进入内核态?
- 有用过内存缓存吗?如redis
- redis是通过什么方式进行持久化的?(RDB和AOP)
- tcp协议的三次握手
- https的协议了解吗
- 介绍一下有哪些常见的算法,并且哪些是稳定的,哪些不稳定,以及时间复杂度
- 对云计算有了解吗?
- 比如云计算有哪些服务和应用场景
- AWS 了解吗?
- 拆分子数组 leetcode 410
- 给定一个由非负整数和整数m组成的数组,可以将数组拆分为m个非空连续子数组
- 编写算法以最小化这些m个子阵列中的最大总和
字节跳动
关键词【Java基础】【锁相关】【设计模式】【算法】
- 自我介绍
- 介绍一下项目
- MapReduce中容易发生数据倾斜,是怎么产生的,如何处理?
- Hive数据倾斜怎么产生的?怎么处理?
- Spark 数据倾斜怎么产生,如何处理?
- 大表和小表如何进行查询?
- 说说HashMap?
- hashMap使用什么样的数据结构?如何扩容?
- hashMap线程安全吗?和它对应的hashTable呢?
- CurrentHashMap呢?
- HashTable 和CurrentHashMap 的区别?
- 用过哪些设计模式?讲讲动态代理模式 和单例模式
- 写一下单例模式,在多线程情况下呢?
- 设计一个栈,包含出栈,入栈,是否为空等
- 求两个大数相加,每个数100位长度
- 介绍一下Spring及Springboot
- Spring IOC如何解决循环依赖的问题?
- 有没有产生过依赖A依赖B,B依赖C?
- 介绍一下Spring AOP
- Spring AOP用的哪些设计模式?
- JDK代理和CGlib代理有啥区别?
- 假如没有接口,又含有final,如何使用动态代理。
- 没有mybatis,如何写dao层?
- 说一下没有mybatis时,通过JDBC具体如何实现这个过程的?
- 了解java线程池吗?
- 线程池在提交任务和执行任务时是怎么做的?
- 创建线程池,当里面的线程数量达到最大时,会出现什么问题?
- 说一下ThreadLock?
- 说一下mysql的事务的隔离级别
- 讲一下mysql的存储引擎
- mysql的索引有哪些?
- 实现一个链表反转,设置一个步长,每隔几次,链表进行反转
- 设计一个hashMap,实现一个put方法
阿里巴巴
关键词【变态】,对着图谱问了一个遍?涉及到云计算的我都没画到图里。
- 自我介绍
- 研究的课题以及培养方向
- 介绍一下你参与的项目
- 项目中有哪一部分是有技术难点的,以及技术架构是怎么样的?
- 50个人的并发量也很低,为什么会出现系统页面数据显示过慢?
- 那你们是怎么解决那个页面显示速度过慢?
- 如何将多个部门的数据进行融合?
- 往系统中导入数据的时候会遇到什么问题?
- 系统前端采用什么做的?
- 导入时,进度条是通过什么技术实现的?
- 返回前端是怎么返回的?
- 前端机制,websocket有没有了解
- 系统产生日志文件,一天产生多少条?
- 怎么用mapreduce处理日志文件的?
- 从业务上说一下怎么对日志文件进行分区的,怎么保存的?
- 用mapreduce处理日志文件的任务,输入是什么,输出是什么?
- 处理日志时,输入是一个文本,要对他进行拆分,拆分的纬度是什么纬度?
- 用hive怎么对日志文件进行多维度分析的?
- 关于网络相关的问题
- 四层模型是哪四层,7层模型是哪7层?
- 链路层要解决什么问题?
- 数据链路层的网络地址用什么表示?
- 三次握手和四次挥手?
- 四次挥手,断开连接的时候,经常会出现time_wait的状态,这个状态是怎么产生的?
- TCP是在IP的上层还是下层? 上层
- TCP和UDP有什么区别,以及用途
- UDP典型的应用?
- HTTP属于哪一层协议 ?
- HTTP底层是基于哪一层协议的?
- HTTP和 HTTPS的区别?
- 说说对HTTP的协议有什么了解?
- HTTPS的安全体现在哪个方面?
- 说说HTTPS协议关于CA证书这方面的了解
- HTTPS传输时涉及到一些加密算法,有哪些了解,以及算法的应用场景 比如RSA
- 对称加密算法和非对称加密算法的概念
- HTTP协议的method有几种
- get和post的区别
- web编程了解多少?
- 在前端提交请求时,cookie中经常有个jsessionid的cookie值,这个cookie值是用来干嘛的?
- 服务器一般保存了一个session,浏览器为什么知道我多次请求在一个session里面,为什么能找到我之前的session
- session机制
- 数据结构
- 说说树的遍历有深度遍历(DFS)和广度遍历,一般怎么实现
- 深度遍历就是先序遍历 先序遍历采用递归,
- 非递归需要用到栈,利用栈的先进后出特性
- 广度遍历就是层次遍历,应该使用非递归,需要用到队列,先将根入队,队列不空时pop,然后入左子树,再入右子树
- 排序算法都有哪些,以及他的时间复杂度
- 说说平衡二叉树的特点
- Java语言
- 说一下==和equals的区别?
- 为什么要重写equals和hashcode()方法
- 静态变量和静态方法,和实例变量和实例方法有什么区别?
- 子类不能重写静态方法
- 为什么要用静态方法和静态类
- 说下关于map以及他的实现类有哪些?
- 说一下hashmap,hashtable,currenthashmap的区别
- 经常在遍历一个map时,在删除时,经常会遇到并发错误
- 设计模式 了解哪些,比如单例模式,工厂模式,动态代理模式
- 说说对垃圾回收机制的了解
- 垃圾回收机制的算法有哪些,初生代用哪些算法,老生代用哪些算法
- 如何判断出哪些垃圾该清理,哪些不该清理?
- 数据库方面的知识
- 说说内连接和外连接的区别
- 数据库设计时会碰到一对多,多对多时,应该怎么设计
- 就以用户表和角色表为例,假如用户表里面放着角色表的id作为角色表的外键,那一个用户对应多个角色,这样设计会有哪些问题
- 机器学习方面的问题
- 监督学习和非监督学习有什么区别?
- springboot应该要接收前端ajax请求时,应该使用什么注解
- springboot中configuration的注解有什么用?
- 分布式集群有哪些了解
- nginx有哪些了解?
- 如果一个session在一台服务器上保存,下一次session请求时,nginx反向代理把我的session请求转发到另一台服务器上,这种情况该怎么处理?
- 微服务架构和一些容器的技术有什么了解?
- docker有什么了解?
京东
关键词:【Java基础】【消息队列】【缓存】【大数据组件】
- 自我介绍
- int 占几个字节?其他几个数值型的分别占几个?
- 集合,经常用的组数和链表的有哪些?说说ArrayList 和LinkedList
- 说说HashMap
- 说说conCurrentHashmap?
- 线程用过吗?在哪用的?
- 五条线程是怎么设计的?
- 怎么启动一个线程?
- 了解反射吗?说说反射?
- 用过Spring吗?
- 为什么在配置文件中配置了,就可以用?
- 用过redis吗 redis都有哪些数据结构?
- 说说Hadoop?
- 说说HDFS的读操作和写操作
- 说说MapReduce
- Hive的元数据,都有哪些?
- 用过kafka吗?
- 写一个单例模式
- final 关键字
- 介绍一下volatile 关键字
- 介绍一下第一个大数据项目,用了哪些技术,画一下架构图
- flume采集子系统日志,这些日志数据都包含哪些?
- 集群是怎么部署的?
- 分析使用什么进行分析的?
- 系统分析的优点和缺点都有哪些?如何改进一下?
- 实时计算了解多少?
祖龙娱乐
关键词【变态】【对着图谱问了一个遍】【涉及原理和源码】
- 自我介绍
- 你自己搭过大数据集群吗?那你说说搭建hadoop集群的3个xml文件
- 正常的hadoop集群工作都会启动哪些进程?
- 他们的作用分别是什么?
- 你能详细介绍一下secondaryNode 的具体作用吗?
- 看来你掌握的还不错啊,HDFS的块默认是保存几份?一个块多大?
- 之前的64M 是从哪个版本变换的?
- 那假设现在是128M,那我在工作中想把它调为256M,那我需要调整什么,才能改变块的大小?
- Hdfs的读写过程你了解吗?简单讲讲?
- MapReduce的工作原理?
- map中的一些步骤,例如partition,sort,combiner,shuffle等等。
- 数据倾斜一般是在Mapper端发生的还是Reduce中发生的?
- 发生数据倾斜是因为这个key分布不均匀,那你会怎么优化呢?
- Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变?
- map输出的数据如何超出他的那个小文件内存之后,那他是落地到磁盘还是落地到HDFS中?
- Map到Reduce默认的分区机制是什么?
- hadoop的调优主要针对配置文件的调优你知道哪几种?
- 1G的数据文件,里面有四个字段,分别是id,name,age,class,然后要按照class来分组,id来排序,口述一下mapreduce的过程是怎么实现的?这里面会有几个map?
- 说说yarn吧,它有什么优势,能解决什么问题?
- 说说Spark吧,Spark为啥比Mapreduce运行块,原因都有哪些?
- 什么是RDD?
- 你都知道哪些RDD算子?
- reduceBykey 和groupBykey有啥区别吗?
- 现在有一个业务,当SparkStreaming在消费kafka里面的数据,然后消费了一段时间之后,程序挂了,当下一次程序启动时如何保证SparkStraming能继续消费kafka之前的位置?
- 还有什么方式可以保障按照位点消费?
- 说说Spark的广播变量?
- Spark累加器吗?
- 你说说spark中 job,stage,task,分别代表什么?
- 说说Spark的工作机制?
- 你了解zookeeper吗?
- 说说zookeeper的选举过程,比如现在有五台机器,ABCDE依次启动起来,那么哪台是leader?
- hive了解吗?
- 说说内部表和外部表的区别?
- 你知道UDF吗?
- 一张大表,一张小表,你写join in时,哪个表放左边,哪个表放右边?
- 问一下kafka的问题吧,kafka是怎么进行数据备份的?
- 消费者是从leader中拿数据,还是从follow中拿数据?
- 说说kafka的ISR机制?
- kafka里面存的数据格式都是什么样的?
- kafka中存的一个是数据文件,一个是索引文件,说说这个?
- kafka 是如何清理过期数据的?
- 一条message中包含哪些信息?
- mysql的最左原则吗?
- 说说抽象类和接口
- 集合了解吧,说说集合有几大类,分别介绍一下?
- hashMap顶层实现了解过吗?具体讲讲
- 说说hashMap在1.8之后优化的环节
- HashMap 和 hashTable的区别?
- 另一个线程安全的是啥?
- 说说ConcurrentHashMap的底层实现
- java实现多线程的方式有几种?
- 讲讲 synchronized,Lock,ReetrantLock之间的区别
- java的线程大概有几种状态?
- sleep 和 wait方法的区别?
- 说说volatile关键字
- 说说JVM内存区域分为几大块,分别讲一下
- 说说sql的事务隔离级别
- 说说mysql的存储引擎
- 给你出个sql 题
student(sid,sname,sex,class)course(cid,cname,teacher)grade(cid,sid,score) 1.sex 改为age,非空,默认值为02.统计035号课程分数大于036号课程分数的学生ID3.统计所有003班学生各门功课的课程名称和平均分
多益网络
关键词【基础】【算法】【JVM】
- 自我介绍
- 重大项目管理平台介绍
- 你主要负责的是哪一块内容?
- 项目最难的地方在哪?
- 开发周期多长?
- 说一下排行榜公布的那个具体实现过程
- 团队合作中遇到什么问题?
- 对互联网加班有什么看法?
- 将一个组数循环右移,根据K来
- 斐波那契数列,不使用递归的方式实现
- 那你说一下java对象的生命周期
- 说一下java的垃圾回收机制,和算法等
- 什么是递归?使用递归 有什么优点和缺点?
- 说一下图的表示方法
- 图有什么分类,图论的分配法?
- 都有哪些排序算法?
- 哪些是不稳定的排序算法?
- 说说快速排序的原理?
- 最近看过什么书?
- 说一下三次握手
- 为什么要看 图解HTTP
- 问一些心态上面的问题? 如果你对你的上司不满意,你应该怎么做?
- 为什么面向对象中,多用组合,少用继承?
海康威视
关键词【Spark】【Java基础】
- 自我介绍
- 你认为最好的项目介绍
- 导入导出介绍,排行榜介绍
- 遇到难的问的,怎么解决的?
- 数据库查询(索引)
- sparkStreaming 消费kafka中的数据存在消费不到,消费丢失的问题。
- Spark 介绍一下 分为哪些组件?
- Spark Sql 和Hive 的区别?
- SQL 的存储引擎
- sql 的事务隔离级别
- JVM 区域划分
- 垃圾回收机制 ,算法
- hashMap 底层实现等
顺丰科技SP专场
关键词【Java基础】【Spring】【Mysql】【红黑树】
- 自我介绍
- 实习期间主要用的技术栈有哪些。(答java、spring、springMVC、mysql、gitLab、layui、easyui)
- Spring主要的特点(提AOP和IOC),有啥好处?
- 说一下IOC
- AOP的实现机制
- 动态代理 jdk方式与cglib方式
- Spring中的事务具体怎么做的?事务的传播性。
- Mysql的事务隔离级别
- 读未提交与读已提交的区别
- mysql事务如何保证持久性(提到undolog和redolog)
- 写这些日志文件有什么好处,为什么要先写日志文件而不是先做操作(面试官见我思考抢先答事务会追加到文件后边再做操作效率高巴拉巴拉)
- mybatis怎么解决sql注入问题(提到#{}和${})
- mybatis的一二级缓存(二级缓存有些忘了)
- springMVC处理流程
- springMVC的好处在哪里(答代码解耦,面试官答:便于多人协作开发)
- 聊java基础,集合类有哪些类?
- 说一下hashMap底层实现原理(数组加链表)
- hashmap的扩容机制
- 说一下什么叫哈希冲突
- 多线程线程池Executor框架了解么,为什么要引入线程池
- 线程池保持线程存活时间的具体参数关键词(答keepaliveTime)
- 任务队列满了以后再来一个任务如何处理(执行拒绝策略)
- JUC包里的东西,有哪些常用锁(答Synchronized,reentrantlock,CAS等等,面试官答原子类等等)
- 原子类底层了解么,比如AtomicInteger
- 转操作系统,问操作系统有几大模块,
- RPC进程通信方式有哪些方式(答pipeLine,信号量)
- 聊网络,网络分层结构,大概每层的主要工作是什么
- 网络层的主要功能(答路由),运输层TCP的主要核心(答可靠传输)
- 数据链路层最核心参数
- 聊常用算法,说一下hashmap的红黑树
- 红黑树上的红节点主要是干什么的
- 红结点和黑结点区别,为啥是红的,黑的
- 红黑树为啥部分平衡。
- 红黑树怎么旋转?
字节跳动2
关键词【算法狂魔】
一面:
- 简短的自我介绍。
- 介绍我的项目,balabala讲了大概20分钟,中间穿插着细节提问,有业务方面的,有技术方面的。
- 说一下悲观锁与乐观锁。
- 说一下http和https的区别。
- TCP和UDP的应用场景。
- http请求头包含哪些字段。
- 斐波那锲数列了解么?(了解)。
- 动态规划相比递归来说有什么优点。
- 算法题,判断镜像二叉树。(用递归写得)
- 分析一下算法的时间复杂度,空间复杂度。
- redis了解么,如何进行redis页面缓存。
- 项目中日志是如何实现的。
- 项目中前端向后端传数据是怎么传的。
- hadoop的数据包是基于什么协议的。
- 项目中登录功能如何实现的,使用了哪些技术。
- cookie和session的区别。
二面:
- 简短的自我介绍。
- 简单的问了下实习期间做的一个大数据平台项目。
- 网络五层。
- 应用层常见协议。
- http协议返回状态码(1xx-5xx)(之前复习了2-5的,面试官说1呢?我说没有1吧哈哈哈,后来想起了,尴尬)
- Https有哪些改进。
- 数据库优化方面(比如数据库慢查询),我回答了一大堆,起始面试官想问建立索引表的方式
- 索引的左对齐原则/最左原则(这个是真没复习到),卡了很长时间,感觉面试官有点不耐烦了...
- 算法,大概就是传递东西,只能向左右手边传递,小朋友0向右传递,传递n次后最后回到小朋友手里,问传递路径,一个动态规划问题
三面:
- 手撕单例算法
- 单例模式中对象什么时候初始化
- JVM构造
- 基本数据类型(比如int i)在内存中是怎么存的
- 类对象什么时候加载的
- static方法和非static方法的区别
- static的原理
- 手撕:一个整数型数组,判断是否存在一个数,这个数前边的数比小,后边的比它大,返回这个数的下标(使用标记数组做)ArrayList的属性length存在与内存的什么地方(哭死,这都什么问题嘛....)
- 对这个算法如何优化,使它的空间复杂度变为O(1)
- 设计题:写日志类满足多线程向文件中写日志,设计一下需要实现哪些方法,说一下大概思路。
四面:
- 自我介绍
- 又把一面的项目讲了一遍,balabala
- 将项目细节问了一些,比如排行榜的评分算法。
- 对于项目的多用户高并发高访问量的解决办法。
- 横向扩展系统(面试官问的Nginx负载均衡,说了半天才说到点上。。)
- 使用过哪些java框架。
- 实习项目:大数据平台又介绍了一下。
- 集群维护遇见了哪些问题,怎么解决的。
- 如何使用HQL对Hive中数据进行处理。
- 从输入url到页面渲染中间过程,如果网络距离太长,怎么解决(我说使用路由器转发,面试官说算了,不了解也无所谓???一脸懵逼....)。
- java的GC算法。
- 聊了一下硕士期间的课题,我是推荐系统方面的,面试官跟我聊了一下电影推荐系统的系统设计,包括架构,推荐算法等等。
- java零拷贝
- linux操作:怎么看应用的cpu使用率
顺丰科技2
关键词【基础】【JVM】【后端】【Kafka】
- 自我介绍 (介绍完之后,面试官哈哈哈哈哈大笑,你这很熟练啊)
- 项目介绍
- 说一下垃圾回收和算法
- 说说Spring
- Springboot和Spring的区别(自己加的,是怎么简化的,底层如何实现的)
- redis数据结构,持久化方式
- mybatis 如何获取自增ID
- mybatis 一二级缓存
- 设计模式工厂模式
- 大数据项目介绍
- 说说你对Kafka的理解
- kafka的消费者组跟分区之间有什么关系
- kafka有5个消费者,4个分区,是如何消费
- kafka的分区有哪些方式,分区算法
- 数据清洗的流程
- 数据清洗之后是落到哪里,数据量大吗
- redis数据如何和mysql的数据保持一致
- 重大项目管理平台讲讲
- 导出功能如何根据自定义功能导出
- 还有其他什么方式可以实现导出功能
- 数据库设计遇到什么问题
- 集合中 arrayList 和linkedlist有什么区别?
- hashMap 说一下
- hashMap 为什么设置初始化为16
- hashCode 怎么对应桶的位置
- concurrentHashMap有什么特点
- 线程同步有哪些方法
- 线程同步使用哪些锁
- 有一个场景,现在一张表有几十万的数据,然后10个线程,
- 对它并发计算,然后计算完了之后通知,该怎么设计?(每个线程处理每个
- 线程的事情,然后做个通知)
- 说说分布式锁
- SpringAop 用过吗
- JVM内存管理核心算法
浙江大华
关键词【Java基础】【多线程】【Hbase】【Spark】
- 自我介绍
- SparkStreaming 如何保证消费kafka的数据不丢失等?
- 说说集合你了解哪些?
- hashMap讲讲?
- 自己实现了一个对象,然后重载在hashcode方法,这个时候还要不要重载其他方法?需要重写hashcode 方法和equals方法
- 在多线程环境中,然后保证使用的对象时线程安全的?(通过加锁)
- 虚拟机的堆内存分为哪几个区?
- 堆里面主要干什么?
- 堆里面能不能细分到哪些区?
- 不同的区使用的算法都是一样的吗?
- springboot 和Spring的区别在哪?
- Springboot是如何简化哪些配置,具体是怎么实现的?
- (和SpringbootApplication 注解相结合,在main中通过调用run方法来加载 监控任务执行时间,创建应用上下文,程序运行参数等相关配置)
- 自己都搭建过大数据集群吗?
- 如何搭建的集群,举几个例子介绍一下?跑过哪些项目?
- 说说Spark的工作机制
- 说说Spark的合并操作
- 项目介绍,举一个例子项目难点,如何解决。
- 分割数据使用什么进行分割?
- 输入的类型和输出的类型分别是什么?
- 输出的结果存储到哪里?
- 那Hbase的表结构是什么样的?
- 表中的key是什么,value是什么?
- 你哪些原始日志是哪哪块采集过来的?
- 另一个项目介绍一下,解决什么难题?
- 数据库优化做了哪些操作?
- 项目中使用了redis,如何操作的,为什么要使用redis?
- 怎么解决双写一致性?
- 使用的用户量是多大?
- 假如用户量大的情况下,那会出现哪些性能瓶颈?
- redis的并发是多大?
- 项目中如何使用多线程?举个例子
- 那累加的线程如何和其他线程做交互的?
- 线程安全的容器有哪些?
- java虚拟机里面的垃圾回收机制有哪些?
- 项目中有没有用哪些工具看过进程中有哪些线程,JVM内存的情况。
阿里巴巴2
关键词【按照图谱来吧】【又广又深】
- 自我介绍
- 说说垃圾回收和相应算法
- 那并发量很高时,使用哪种算法?(复制算法)
- 介绍一下项目
- 那你在这个项目中最大的成就感是什么?
- 那你开发项目主要的优势在哪?(怎么感觉不像是面试,在聊天,哈哈哈)
- 在网页上输入一个URL,说说它所经历的过程(DNS寻址,TCP连接,Http请求,http响应,页面渲染,TCP关闭连接)
- 很多服务器,那请求落到哪台服务器上,是通过什么策略?(通过nginx的ip_hash策略)
- 平常有没有了解一些新知识(docker,springcloud)
- hashMap实现原理
- 个人规划
- 现在的技术薄弱点在哪里,怎么去突破
- hash的实现机理是啥?他能带来哪些好处?通过我的回答,他接着问,B+树索引的核心在于什么?
- 我们知道树有很多种,为什么要选择b+树,而不选择其他?数据库索引有很多种,哪一种索引对应的是b+树实现的?
- Spark流式计算过程
- Spark如何进行分桶
- SparkStreaming 和MapReduce比较,提升的性能在哪?
- SparkStreaming 的实时体现在哪?
- 简单介绍一下单例模式
- 简单介绍一下工厂模式
- 说一下代理模式和策略模式
- JVM内存模型简单介绍一下
- 哪些是线程私有,哪些是线程共有
- 哪个不会发生内存溢出?
- 方法区产生内存溢出怎么判断?
- 类加载存在内存中的哪一块?(类的元数据在方法区,class对象在堆区。)
- 垃圾回收的一些算法
- 年轻代,老年代分别用什么算法?
- 创建一个线程有几种方式?
- 怎么启动一个线程?
- JDK里面 线程池的定义
- 多线程里面,有什么机制可以保证线程安全?
- voletile如何保证线程安全?
- 那使用voletile 有什么缺点?
- synchronized用到静态方法和非静态方法有什么区别?(修饰静态方法,
- 作用于当前类对象加锁,修饰非静态方法,作用于当前对象实例加锁)
- threadlocal了解吗?讲讲这个
- threadLocal 一般是怎么区分的?不同的线程之间是怎么隔离的?
滴滴
关键词【大数据组件原理】【多线程】【NIO&RPC】
- spark任务的执行流程
- Spark任务调度有几种方式?(任务是怎么分配给executor)(调度算法)
- Spark任务分配方式有几种方式?
- yarn的资源调度?
- 宽窄依赖具体讲讲
- 宽依赖是不是要进行shuffle
- shuffle操作有几种方式
- Spark任务产生小文件太多,该怎么处理?(合并小文件的方式有几种)
- (例如sql,函数,distrubutedBy)
- hive如何实现UDF的详细过程(客户端继承UDF类,然后打包 )
- hive sql解析看过吗?
- Spark sql解析有哪几个步骤?具体如何操作的(spark内核的sql解析)
- (把sql如何拆成多个job)
- 线程的状态有几种?
- 等待有哪几种方式?
- 常用的线程池有几种?
- 定时的线程池有几种?
- Spingboot部署的时候用的哪个容器,内部用的哪个线程池?
- 多线程过程中用过哪些锁?
- 锁主要分为几大类?
- synchronized底层是怎么实现的?和其它锁有什么区别?
- Lock锁讲讲 ReenTrandLock讲讲?怎么优化这个重入锁?(通过编译器方式优化)
- 比如嵌套锁嵌套了好几层,编译器如何优化这些代码?
- 锁优化有哪些方式?(锁消除,增大粗度等)
- 锁消除通过什么参数可以控制?
- 数据库事务有几种?(数据库隔离级别)
- 事务的传播机制?(7种)
- 事务嵌套开启一个事务,用那种传播机制?(required)
- 继承上一个事务(使用support)
- 搭一个通信框架(使用tcp) 用socket编程搭,客户端、服务端等。
- NIO了解过吗?怎么做的优化?分为几个阶段?每个阶段是做什么的?
- RPC了解吗?常用的RPC框架有哪些?(基于二进制协议的)如(dubbo)
- 任务调度有用过吗?(使用springBoot如何快速创建一个定时任务(用一些组件))
- 底层如何实现调度的?
蘑菇街
关键词【阿里味】你懂的
- 自我介绍
- 说说JVM原理、内部分配
- new对象的过程
- new一个对象时是如何知道给它分配多大的空间?(JDK64位,创建一个对象占24字节,32位 占12字节)
- 项目介绍
- 说说HDFS (跳跃很快啊)
- HDFS写操作
- 写操作中如何判断客户端向哪一台datanode中上传第一个block块。(通过就近原则)
- 那客户端是怎么通过距离来判断哪台datanode 离他近或者离他远(看客户端到达datanode
- 之间的网络跳转的次数来判断,如果在同一个路由器下面,那距离都一样,直连,只需要跳转一次)
- 第二次上传block块根据什么原则?(就远原则,保证安全性,防止全部上传到一个机架上,如果机器坏了,数据就会丢失等。)
- 场景题 过滤出评论中的敏感词
- (想法1:通过正则表达式)
- (想法2:布隆过滤器)
- (想法3:通过和b+树类似的字典树(DFA算法)来实现,字典树的每个节点保存每个字符,
- 那他所形成的路径就代表一条一条的字符串,进行查询时,如果匹配到敏感词的字符串,那就过滤出去)。
- Spring IOC、AOP底层实现
- 1Spring ioc中的单例模式和原型模式适用场景,什么时候用单例模式,什么时候用原型模式。
- Spark(spark的内部构造,实现原理,解决了什么问题,运用场景等)
- MapReduce 设计时为什么要设计成 map,reduce的操作,它解决了什么问题。
- 说说kafka的原理
- 服务端从kafka中去拉数据,服务端的空间永远是有限的,拉完怎么判断所有人都拉完了?
欢迎点赞+收藏+转发朋友圈素质三连