面试刷题10-30

一面+二面+三面:(视频面)

  • Redis数据类型的底层数据结构,String类型和SortedSet类型

String类型底层是SDS字符串,SortedSet 底层是跳跃表

  • 中断处理中cpu现场环境存储在哪里
  • MySQL中有a,b两列各自建立索引,在进行查询的时候,走哪个索引,怎么设计
  • 三面主要问项目中的消息中间件和场景题
  • 代码题目:leetcode 85最大矩形 , 判断链表有无环,手写hashmap
  • 好多不记得了。。??
  • 还记得当时收到四面通知的崩溃,以为结束了,都在躺尸的时候收到了四面通知。。

一面(视频面)(1h20min)

  • 代码题:单例模式,数组的题
  • 阻塞队列实现
  • 怎么设计一个线程池的各个参数,各种场景下线程池的设计

CPU密集型,和IO密集型

  • cas底部是怎么实现的保证原子性(底部到硬件指令)
  • 最后,讲一下虚拟机的知识点吧
  • 只记得一些典型的问题了,一面还是基础问的比较多,细致~

 

二面(电话面)

  • 聊项目.gif(感受到一丝凉意)
  • hadoop和spark区别,为什么用spark,优势
  • 为什么用这个消息队列,高可用,保证消息不丢失的机制
  • 为什么用线程池,线程池有哪些,以及应用场景
  • 垃圾回收的知识,为什么要垃圾回收,可达性分析,回收算法,垃圾回收器
  • 写sql语句,查询各门科目成绩都>80的学生姓名
  • 聚簇索引和非聚簇索引
  • mysql事务和隔离级别,默认的隔离级别
  • sychronized和可重入锁的区别
  • ORM框架——mybatis
  • Spring和Springboot (我以为会被挂的地方,不太懂Spring)

 


 

几乎和百度同时进行~

一面(视频面)

  • 为什么研究方向是机器学习,不做算法。。(我也想啊,这不是菜嘛?)
  • 聊项目.jpg,主要聊了分布式的项目,源码等等
  • 那我们来问一下java知识吧
  • java内存区域
  • java有哪些等待通知机制
  • Countdownlatch了解嘛,底层怎么实现的?
  • 说下AQS
  • 什么时候申请堆外内存
  • 内存映射以及内存映射的方法是哪个
  • 分布式缓存redis,怎么做成分布式
  • 一致性hash
  • 不用redis cluster怎么做?
  • redis cluster一个宕机了会有哪些处理?
  • 分布式数据库了解吗?
  • 发布订阅模式,以及一个消费者组集群模式怎么消费
  • 了解Spring吗(不了解不清楚别问我我没看)
  • web下服务器怎么做负载均衡的?

二面(视频面)

  • 项目和场景题
  • 负载均衡的几种方法
  • 缓存击穿,雪崩的应对方法,详细讲

HR面(现场面)

  • 常规HR问题

 

 

四. 阿里(等最终通知)

一面(电话面)

  • 项目相关:有调研其他的消息中间件吗?为什么用rocketmq?
  • 线程池的原理以及各种线程池的应用场景
  • 线程池中使用有限的阻塞队列和无限的阻塞队列的区别

无限阻塞队列不会执行拒绝策略

  • 如果你发现你的sql语句始终走另一个索引,但是你希望它走你想要的索引,怎么办
  • mysql执行计划
  • 数据库索引为什么用b+树(磁盘io的深入了解)
  • 你在做sql优化主要从哪几个方面做,用到哪些方法工具

二面 +  三面 +  交叉面 +  HR面(电话面)

(我已经忘完了,忘记记录面经了?)

在坐地铁的路上面了个疑似交叉面的面试,刚开始以为是挂了,然后被别的部门捞了,也没听清楚是什么部门,内心很崩溃,当时面的感觉是秋招面的最差的一次。

却意外地等到了HR面,才知道前一面可能是交叉面(来自从没体验过交叉面的疑惑?)~~

面试官让我帮忙推没有面过的简历,太难找了,问了别的实验室也没有,尽力啦,等最终通知!!

五. 美团(上海)

一面(电话面)

太太遥远了,不记得了.jpg

二面+三面+HR面(现场面)

距离一面有1个多月,期间收到了HR通知去上海现场面,但当时有些懒得跑,想等南京现场面,就木有去,终于等到南京现场面

  • 线程池的原理以及各种线程池的应用场景
  • 项目深挖,画出架构图,加MQ源码
  • MQ不能保证只会消费一次,如果让你在MQ中加入,你要怎么设计
  • 消息去重保证幂等性有哪些方法

我是只有七秒记忆么,这是最近面的一个了,大多还是不记得了?

六. 小米(南京)

一面(现场面 2h)

去了南京小米公司面了一波,整整两个小时让我怀疑人生

  • 问了研究方向
  • 项目中使用的MySQL版本号,使用哪个引擎,为什么
  • MySQL两个引擎的区别,为什么INNODB使用聚簇索引,而不用MyISAM行指针的形式
  • SQL优化的几个方面
  • Redis的数据类型,SortedSet底部实现

跳跃表

  • Redis分片的几种形式,Redis Cluster
  • 介绍一下JVM知识
  • Java线程池原理及其应用场景
  • Concurrent并发包里几个类介绍一下
  • HashMap求hash值的时候,无符号右移16位的意义
  • 解决hash冲突的几种方法,在哪些地方用哪种
  • tcp粘包和拆包的方法,tcp可靠性通过哪几个方面保证
  • http无状态的,session和cookie存储在哪里
  • 调用一个模块的服务的请求参数是加在哪里,修改http请求头来保持请求的状态
  • 一个服务部署在多个服务器上,怎么负载均衡,怎么让请求打到某个服务器上,怎么寻址,一个服务器宕机怎么感知
  • io多路复用,select,poll,epoll的底部原理
  • 手写一致性hash
  • 算法题:两个集合求交集,其中相同的数字出现多次就输出多次,无序

二面(电话面)

不想再跑一趟了,向面试官改成了电话面

  • 避免幻读的方法,MVCC中怎么避免幻读的某个方面
  • Full GC什么时候发生,各种垃圾回收器,哪些是年轻代,哪些是老年代
  • 数据库索引结构,为什么是B+树
  • 项目ing
  • 感觉面的不太好,二面面试官说有三面,没等来三面,等来了Offer Call

七. 华泰(南京)

一面

  • 项目问题ing....
  • http的get和post区别
  • 大量数据不能一次性放到内存,出现频率最大的数字,数据倾斜的极端情况怎么办

课题考察

分布式全局唯一ID生成器

  • 耗费心血,熬夜三天

HR面(5分钟)

主要问成绩,家庭情况和职业规划

已经收到体检通知啦,希望一切顺利,加油

八. 招商银行信用卡中心(等最终通知)

初面

  • 项目里用了什么设计模式,详细讲一下
  • 项目ing
  • 微服务

终面(技术+HR面)

  • 问了研究方向....详细讲讲看

  • 项目问题

  • HR问题:如果转前端可以吗,学习要多久(回答的是更想做后端,害怕.jpg)

 

 

一面:

1、Java的多态
2、类的关系,组合和聚合的区别、哪个关系更紧密
3、说一下反射,及你在项目中的应用

3、线程池,线程池参数
4、线程间的通信

wait, notify, lock,
5、介绍ThreadLocal
6、ConcurrentHashMap,JDK1.7和1.8的不同实现
7、hash算法
8、什么是时间复杂度



二面(总监面):
1、实验室研究方向,自己的研究方向,介绍发表的论文专利等
2、问项目,项目中数据库的结构设计,整体框架等,并从项目中引出了以下问题
1)用过数据库索引吗?介绍如何使用,何时使用
2)介绍B树、B+树、红黑树
3)数据库分页查询,如何分页,怎么实现
4)四种隔离级别,虚读和幻读什么意思发生在哪
5)使用的MySQL版本,和之前版本的区别
3、使用什么版本的JDK(我答1.8)介绍和之前版本的不同
4、1.7和1.8的JVM有哪些不同
5、1.8的垃圾回收算法,介绍你所知道的垃圾回收算法,CMS垃圾回收器简单介绍
6、ConcurrentHashMap的size()函数1.7和1.8的不同,或者介绍一下如果是你如何设计
7、排序算法,介绍一下快速排序,快速排序时间复杂度,是不是稳定排序,介绍几种你所知道的稳定排序算法

8、UDP,TCP,HTTP介绍一下,OSI七层模型
9、最近阅读的书籍(Spring Cloud、Spring boot),从什么网站学习(Github、知乎、开源社区)
10、说几种你说熟悉的微服务架构(可以不说属于开放性问题)
11、Redis支持的数据结构

12、讲一下一致性哈希
13、最近拿过什么offer,哪些公司,做什么


三面(交叉面):
1、介绍一个你觉得最自豪的项目,依托这个项目问了很多问题
2、说一下你觉得你最熟悉的Java那个领域,根据这个领域问了一些问题

3、问JVM主要是各种垃圾收集器、GC算法,安全点
4、介绍volatile

5、java内存模型
6、synchronize,以及与Lock的不同
7、Java内存泄漏如何排查排查


四面(HR面):
一些hr常问的问题,比如:最得意的事,最失败的事,参加的比赛,印象深刻的事,为什么来阿里,对这个部门了解吗,等等。

五面:
第五轮属于调部门后加的一面
1、面试管问了自己做过的项目,挑一个你认为最好的项目讲解,期间问了很多项目中的问题,比如:做项目中遇到的问题如何解决,你觉得你在项目中做的最好的一个点是什么,还有什么改进的地方,并发访问量有多少,数据库如何设计等等。
2、问了科研情况,发表的论文以及论文中的主要工作。
这两个问的都挺细的

六面(部门leader和hr一起视频面):
leader也是问了做过的项目,问的比较细,讨论的比较多(建议一定要准备一到两个拿得出手的项目,而且一定要实际做过,了解其中的问题和难点,这样才能和面试官聊)
hr问的问题和第四面差不多。

 

static

jvm内存分区

object类中的方法

toString, HashCode, Equals, wait, notify, finlieze

hashcode

将这个类对象映射为一个Hash值

wait与sleep区别

wait会释放锁,sleep不会释放锁

notify方法

线程池参数,执行顺序

输入url发生什么

tcp挥手过程

http状态码

forward 和 redirect

集合类

concurrentHashmap 如何保证线程安全

CAS

编程:二叉树的镜像


 

大概是八月份的时候面的滴滴,两轮技术面,一轮hr一轮主管.前两面一天走完,hr和主管面是电面,隔了大概三天

一面

  1. 自我介绍

  2. 为什么离职
    当前平台发展有限,项目进入稳定期,新需求不多,维护为主,对个人发展不利

  3. 说一下HashMap的数据结构,复杂度
    这里可以以put方法作为切入点,把put方法分析出来,数据结构和复杂度就自然出来了

  4. 有没有多线程的使用经历,如何进行的优化
    讲了项目中的一个多producer多consumer的一个实现,用到了juc包中的countdownlunch,原子类,BlockingQueue等

  5. MySQL用过么?讲一下索引的数据结构.怎么分析查询效率
    讲了innodb复合索引的b+tree模型,最左匹配原则.查询效率的explain分析.

  6. redis用过么?redis怎么保证查询速度
    纯内存操作;单线程多路复用模型;HashMap的数据结构

  7. 用过什么消息队列?为什么用RabbitMQ?应用场景有什么?有没有和其他mq作比较
    用过RabbitMQ;场景:削峰填谷 异步调用 解耦 扩展性 ; 没用过其他mq

  8. 遇到过什么线上问题?怎么做排查
    先看日志报错,死锁的话看dump,jstat分析gc状况,服务器可连接的话可以用visualvm

  9. 你有什么要问我的
    问了团队组成,业务方向,我要做什么
    最后留了一个算法题: LeetCode 236. 二叉树的最近公共祖先
    手撕了一遍,middle难度

    二面
    二面面试官先看了下上一轮的代码,简单对了下逻辑.然后开始面试

  10. 介绍一下项目

  11. 项目中负责什么

  12. 项目中做了什么优化
    讲了下项目中RabbitMQ实现了at least once,包括mq反馈provider,消息持久化,consumer主动反馈mq.线程池消费防止消息积压等.

  13. 讲一下springmvc的原理
    我没用过springmvc,之前用的ssh,后来就直接SpringCloud加springboot了.这里凭印象答了一下.注册dispatcherServlet,将request按照url分发给不同的controller处理,controller调用service+dao等处理业务.之后response返回.

  14. 看过什么源码?简单说一下
    看过spring源码,简单说了下spring如何处理循环引用.其实答ioc和aop更好些.

  15. 问了两个java基础,记不清细节了.

  16. 你简历里还写blog?看了下我的blog~

  17. 有什么要问我的?
    问了还会不会有下一面,哈哈,面试官也乐了,说会有下一面~
    主管面

  18. 介绍下自己的经历,以及每一次跳槽选择的原因

  19. 说一下java的几种锁
    这里我把几种锁的原理,用法和应用场景对比都说了.包括volatile.

  20. 说一下项目中遇到的最大的困难,你是怎么解决的.

  21. 你坚持最久的事情是什么?坚持了多久

  22. 你的朋友怎么评价你?
    讲真这个真的毫无准备.完全临场说了一通.
    主管面的确比较偏向价值观,方法论等等.给人的感觉就是通过几个问题就能摸出来你的性格,技能等等...
    hr面

  23. 为什么想离职?

  24. 手上有没有其他offer,哪儿?

  25. 期望,现在的职级

    一二面各持续了一个小时左右,主管电面半个小时,hr聊了十几分钟.
    整个面试过程就这样~

 

 

一面:

快排

java gc有什么了解

spring ioc aop

30min左右

 

二面:

算法

堆排

二分变形

 

主要问了

索引如何设计

这个问题提示了很久

我也没说对。。尴尬

50分钟

 

三面:

给定一个数组

返回打乱数组

leetcode shuffer an array

 

三面关于项目

表的设计

线程间的通信

tcp 四次挥手

智力题

一栋楼房,三个电梯

设计电梯运行的规则

这智力题我是一脸蒙蔽

40多min

不知道今天滴滴面试人多还是什么情况

远程面试网络巨卡

面试面的一脸蒙蔽,短信通知倒是挺快

本来以为就一面,面着就三面了,感觉人均三面

 

还有好多基础知识没回答上来

没什么好的项目,三面一直尬聊。。卒

你可能感兴趣的:(算法)