面试资料整理20215月18号

头条-后端

一面

1.介绍了一下做过的项目架构,和项目实现细节。面试官最近刚做了一个项目,跟我们做的项目一样,聊了比较久

2.看我之前是打acm的,说问道简单的算法题走个流程Orz。

题:一个先逆序再正序的数组,求最小值

5 4 3 2 1 2 3 返回 1

解法:二分

3.看我项目里有一个进程内缓存的项目,聊了一下,然后又问了concurrentmap和hashmap区别,concurrentmap的分段锁,最多支持多少个segment

二面

1.聊项目,聊了比较久

2.问了一到算法题,二叉树按中序遍历的方式转换为链表

解法:中序遍历,遍历的时候修改树节点的前后指针。需要用到一个辅助节点pre和一个节点记录链表头

三面

1.问了一个开放性题目,设计一个方案,根据用户地点返回附近的餐馆

按城市划分,将城市划分为网格,每个网格有不同的餐馆,先定位到用户在哪个网格,再获取周围网格中的餐馆

2.算法题:将一个字符串小数约分为分数,且分子分母约分过,需要考虑无限循环小数

1.15(3) 表示1.153333333333循环

解法:分三部分,整数部分,非循环的小数和循环的小数

非循环部分的小数变分数为x/10^n

循环部分小数变分数为y/10n(10m-1)

如上述例子中循环部分为 3/ 100*9

整数部分直接加上分数

约分使用欧几里得算分子分母最大公约数,再除一下即可

二叉搜索数第k大元素。

二叉树按层遍历。

堆排序。

topk。

两个set取交集

链表是否有环。如何找到入环节点

头条-后端

一面:

1.项目。

2.Reentranlock 与synchronized区别。 各自的底层实现

3.事务隔离级别。 innodb的默认隔离级别如何避免幻读?

  1. mvcc。快照读 当前读。

  2. jvm cms的步骤。 缺点。

  3. 有大量full gc如何排查?

  4. 堆 gc频次正常 时间正常。 出现内存泄漏是什么问题? 如何排查堆外内存? 你见过哪里用堆外内存?

  5. netty eventloop 大概做什么? io事件 读写事件。任务事件

  6. 任务事件中 如何保障多线程情况下线程安全的进行上层的writeAndFlush? mpsc队列

4.实现一个 LRU ? get为o(1)复杂度

二面。

1项目中 难点。讲两个

  1. 如何实现一个可靠传输? 序列号。校验和 重传 ack 滑动窗口。拥塞控制。等

  2. mysql架构。 sql经过解析器之后得到的解析树 如何转换成优化器的执行计划?如何选择?

  3. b+tree结构?索引的页分裂?innodb做了哪些避免页分裂的努力?都是从节点中间记录分裂吗?

  4. 辅助索引 一个范围查询。 如果当前值不在索引中。如何查处符合条件的记录的?

  5. innodb的特性? 自适应hash。聚簇索引。 insert buffer?

  6. 可靠传输一定需要建立连接吗?

  7. 双向链表消除相处重复的? 消除之后新链接在一起的仍相同继续删除。算法题 手写

  8. 数组中 指定元素值的最小下标。 如何最优?二分查找中继续二分查找 手写

  9. 红黑树特性?二叉搜索数第k大元素。 然后继续topk算法。 除了小跟堆之外。问还有别的呢? 基于快排思想的top k手写。

三面。

1.项目

2.kafka的传递保证

  1. 一次遍历打印出 二叉树的最大深度和最大宽度 (同层中节点个数最大值)

  2. 如何删除倒数第k节点

  3. 聊以后发展

头条-后端

一面:

  1. 项目介绍 20分钟

  2. mysql索引 优缺点 底层实现原理

  3. mysql的优化。 不限于sql优化

  4. mysql join原理

  5. tcp协议 如何保障可靠传输

  6. MTU是什么? MSL呢

  7. redis zset实现原理

  8. rdb 和 aof区别

  9. redis的主从同步原理

  10. 二叉树的后序遍历

  11. 二叉树按层打印

  12. 括号的有效组合

二面

  1. 项目介绍

  2. tcp udp区别。头部字节有哪些。多少字节

  3. 通过域名是如何从外网请求到你公司内网服务器的? 详细讲解一下

  4. 路由算法

  5. 当前路由到某一个节点,如何查找选择的下一个节点?

  6. ip 分几类? 如何划分的?

  7. tcptrace 请求一个目标ip。会把路由的所有节点ip打印出。是如何做到的?

  8. 最长回文子字符串

  9. 反转链表 递归。非递归

猿辅导-Java

1、线程池参数中队列种类

2、Redis架构类型,单点、分布式特点和理解

你的职责

系统的业务指标都有哪些

mafka如何做消息不丢失和不重复消费

系统如何保证的可用性

系统的一些细节,引申发问

本季度你们的kpi是啥

系统设计有什么体会

1.项目,讲了挺多。

2.java nio,netty 中server端为什么需要两个group

3.红黑树,put方法

4.dubbo中负载均衡实现方式,你自己实现rpc框架需要注意哪些方面。

5.kafka发送端的bufferpool,consumer端的rebalance流程

6.jvm调优经验,垃圾回收算法。

6.算法:前序遍历,中序遍历构造二叉树;查找树中的第k个节点。

二面面试题:

写了一个题,实现一个循环链表,实现put和take两个接口,如果队列满就扩容一个节点,只考虑扩容,不考虑缩容;

还有就是事务隔离级别,jvm内存结构;

还有线程池的实现

交叉面试题如下:

分库分表后如何分页查询?

了解levelDB吗?

redis源码看过吗?

kafka 的 offset 保存在那里?

什么情况下会发生 rebalance ?

kafka 如何知道一个消费者下线了?

系统设计

公司有个公用的支付账户,员工购买东西都从这个支付账户扣款,现在有个抢购活动,商品个数无限,但公用账户上额度有限,问如何设计支付系统,让抢购活动期间员工也有比较好的用户体验。

三面面试题:

你的职责

系统的业务指标都有哪些

mafka如何做消息不丢失和不重复消费

系统如何保证的可用性

系统的一些细节,引申发问

本季度你们的kpi是啥

系统设计有什么体会

一、二面

设计模式原则,medium难度偏下,算法:1 判断平衡搜索树 2 链表末尾加个位数,技术: es mysql事务隔离级别 线程池

阿里-阿里妈妈-Java

1、mysql中myism和innodb的区别

2、聚簇索引和非聚簇索引区别

3、jvm内存模型以及程序运行时,它们是怎么一个过程

4、jvm跨代引用是如何处理的

5、双亲委派机制的优点

6、消息中间件里的消息重复、乱序、丢失,请从生产者和消费者的角度去谈一谈

7、k8s的设计理念,源码是否看过,谈一谈这样架构的好处

8、程序计数器是如何工作的

9、volatile是干啥的?其中线程里的私有内存是放在哪儿的,主存是在哪儿?

10、结合类加载和jvm内存模型说一下整个过程

11、了解那些数据库的索引数据结构?分别说说有什么好处?

12、微服务拆分的原则?优缺点?

13、启动三个线程实现顺序打印abc

14、动态代理的原理

15、容器了解多少?为什么k8s的设计里有pod,而不是直接用容器?

16、高并发场景下,有10台机器正在工作,其中有一台机器重启之后cpu load特别大,请从各个角度分析一下该现象出现的原因

17、如何用AQS实现一个锁

阿里-新零售-Java

阿里巴巴一面(55分钟)

先介绍一下自己吧

说一下自己的优缺点

具体讲一下之前做过的项目

你觉得项目里给里最大的挑战是什么?

Hashmap为什么不用平衡树?

AQS知道吗?知道哪一些呢?讲一讲。

CLH同步队列是怎么实现非公平和公平的?

ReetrantLock和synchronized的区别

讲一下JVM的内存结构

JVM 里 new 对象时,堆会发生抢占吗?你是怎么去设计JVM的堆的线程安全的?

讲一下redis的数据结构

redis缓存同步问题

讲一讲MySQL的索引结构

你有什么问题要问我吗?

阿里巴巴二面(45分钟)

根据项目问了一些细节问题

说一下HashMap的数据结构

红黑树和AVL树有什么区别?

如何才能得到一个线程安全的HashMap?

讲一下JVM常用垃圾回收期

redis分布式锁

再描述一下你之前的项目吧

你觉得这个项目的亮点在哪里呢?

你设计的数据库遵循的范式?

你有没有问题?

阿里巴巴三面(50分钟)

又聊项目

在项目中,并发量大的情况下,如何才能够保证数据的一致性?

elasticsearch为什么检索快,它的底层数据结构是怎么样的?

JVM内存模型

netty应用在哪些中间件和框架中呢?

线程池的参数

讲一下B树和B+树的区别

为什么要用redis做缓存?

了解Springboot吗?那讲一下Springboot的启动流程吧

如何解决bean的循环依赖问题?

Java有哪些队列?

讲一讲Spring和Springboot的区别

最近看了什么书?为什么?

你平时是怎么学习Java的呢?

阿里-阿里口碑-Java

阿里巴巴一面(38分钟)- 自我介绍

介绍项目, 具体一点

讲一下Redis分布式锁的实现

HashMap了解么吗?说一下put方法过程

HashMap是不是线程安全?

ConcurrentHashMap如何保证线程安全?

数据库索引了解吗?讲一下

常见排序算法

TCP三次握手,四次挥手。

深入问了乐观锁,悲观锁及其实现。

阿里巴巴二面(45分钟)

自我介绍+项目介绍

你在项目中担任什么样的角色?

那你觉得你比别人的优势在哪里?你用了哪些别人没有的东西吗?

Java怎么加载类?

linux常用命令有哪些?

Spring的IOC, AOP。

讲一下ORM框架Hibernate

设计模式了解吗?讲一下

自己实现一个二阶段提交,如何设计?

你还有什么想问的?

阿里巴巴三面(30分钟)

说一下自己做的项目

问了一些项目相关的问题

wait()和sleep()的区别

原子变量的实现原理

CAS的问题,讲一下解决方案。

有没有更好的计数器解决策略

讲一讲NIO和BIO的区别

Nginx负载均衡时是如何判断某个节点挂掉了?

讲一下redis的数据类型和使用场景

k8s的储存方式是怎样的?

Spring AOP原理是什么?怎么使用?什么是切点,什么是切面?最好是举个例子

算法题:给一堆硬币的array,返回所有的组合

阿里巴巴总监面(34分钟)

算法:给一个set打印出所有子集;多线程从多个文件中读入数据,写到同一个文件中;判断ip是否在给定范围内;打乱一副扑克牌,不能用额外空间,证明为什么是随机的。

Tcp和udp区别

线程池的原理以及各种线程池的应用场景

线程池中使用有限的阻塞队列和无限的阻塞队列的区别

如果你发现你的sql语句始终走另一个索引,但是你希望它走你想要的索引,怎么办?

mysql执行计划

数据库索引为什么用b+树?

你在做sql优化主要从哪几个方面做,用到哪些方法工具?

有没有想问的?

阿里巴巴HR面(23分钟)

自我介绍

平时怎么学习的?

有什么兴趣爱好吗?

怎么看待996?

怎么平衡工作和学习?

有没有什么想问的

阿里-阿里云-Java

一面:

项目介绍

字符串全排列

线程安全

设计题:设计一个微博系统,给了一个比较大的用户量

阿里-钉钉-Java

钉钉-Java-应用线的一轮电话面试题

1.项目经验

2.spring boot和spring的区别?

3.spring是如何识别一个类的?如何解决循环引用?

4.jvm内存模型有什么?

5.jvm gc算法有哪些?

6.mysql事务级别?

阿里-钉钉-Java

1.自我介绍

2.离职原因

3.算法题 乱序数组找第k大的元素

4.可重入锁

5.tomcat内部启动两个java项目 内存隔离设计

6.讲下项目 做了哪些优化。

7.提问

阿里-钉钉-Java

1、锁升级

2、索引有大小于号、order by 能否使用

3、分布式锁的使用

4、讲讲分布式事务,方案,实现,理解

5、springboot 启动流程

算法题:

实现一个controller,包含get、add两个方法,用于记录请求add方法的次数(流量统计)。需要支持高并发(面试官说使用 ThreadLocal 是加分项,但是需要额外处理一个问题,但是没说什么问题)

阿里-蚂蚁-Java

面试 时间 50min

1.项目介绍

  1. 倒排索引原理

3.索引优缺点

4.什么情况下不能使用索引?

  1. 如何优化sql? 从索引、 覆盖索引、 limit

6.为什么 尽量不要用select *?

7.乐观锁 、悲观锁 区别

  1. mysql的乐观锁 、悲观锁 、 next-key锁原理、 如何解决幻读? 有哪些锁? 意向、x锁、s锁

9.java的 乐观锁 cas ,

  1. cas原理 、 vlotaile原理? cpu层面、 缓存一致性原理?总线锁、缓存锁 JMM模型? 内存屏障? storestore 屏障、storeload屏障

  2. sychronized reentranlock 实现悲观锁 、 sychronized原理 ? 锁升级:偏向所-轻量级所-重量级锁

  3. reentranlock 中 AQS同步器原理? clh队列? tryAcquire的过程?

13.gc 算法 、优缺点

  1. cms 的缺点? 回收步骤?

  2. 如何进行jvm优化? 有几种 gc fail? 哪些参数调优、? 如何排查gc问题?

Jvm内存结构

Jvm调优

多线程,几种方式

线程池

垃圾回收

问项目,细节问题,

项目中遇到什么问题怎么解决

设计模式,策略模式 ,工厂模式,在项目中运用

Jvm回收算法

项目分库分表

数组归并排序

图论的算法要了解

阿里-蚂蚁-Java

笔试 30分钟

  1. 数组实现的栈。pop时候没有销毁,有内存泄漏问题!

  2. linux的 awk sort sed用法

  3. 加权轮询 算法 实现

  4. 实现一个签到领奖励的算法,描述一下尽可能优化的数据结构 .规则是 用户一天签到一次,连续签到奖励越多,一旦不连续从头开始计算,连续八天后也从头开始计算!

  5. 如何实现http压测?如何控制并发数?能想几种办法?

一面:

  1. 项目介绍

  2. rpc框架原理

  3. zk原理。zab协议

  4. 线程池的参数

  5. 如何实现一个阻塞的队列?

  6. nio bio区别?select epoll区别?

  7. epoll底层数据结构。红黑树 链表 回调机制

  8. netty特性。 动态buffer。nio模型 使用注意: 定时任务 普通任务。不要作耗时操作。影响同一个eventloop上其他channel读写等等

二面:

  1. 项目介绍

  2. redis分布式锁原理。为什么要加超时时间?key 如何设置?会不会出现误删锁情况

  3. kafka原理。存储模型 io模型 网络模型

  4. 如何保证同一个订单号的消息全部有序? 如果消息量大,多个partition如何保障?consumer和provider需要如何才可以保证顺序?

  5. 如何管理kafka logsegment的?跳表

  6. 二叉树镜像

  7. copyonwrite技术应用。juc中copyonwritelist。 linux的fork 写时复制

  8. concurrenthashmap 原理。讲一下put过程 1.7与1.8区别

  9. 红黑树的插入 查找复杂度

  10. 红黑树特性

  11. 简单写一下红黑树put 左旋 右旋。变色

三面:

  1. 有序有重复数组中 找目标数的最大下标

  2. 堆排序实现。复杂度

  3. thread中止 有多少个办法

  4. sleep wait 区别。 会抛中断异常嘛?

  5. locksupport的park 中默默返回。需要捕捉中断

  6. AQS 原理。

  7. 最长递增子序列

  8. 有什么想问我的

阿里-蚂蚁-Java

电话面

  1. 聊业务

  2. java基础:mysql事务(可重复读),java锁机制,ReentrantLock和ReentrantReadWriteLock(底层aqs),concurrenthashmap,redis数据类型和过期策略

  3. 设计题:怎么对接口做限流

阿里-高德-Java

AOS java面试题

1、业务相关问题

2、JUC下面的包挑熟悉的一两个详细描述下

3、https相关

4、volatile

5、零拷贝原理

6、NIO

7、分布式锁实现

阿里-高德-Java

二面:

redis 哨兵模式

hbase 原理

mysql分表的事务

LinkedBlockingQueue和ArrayBlockingQueue的异同

a b c 线程 如何保证顺序执行

threadlocal 两个不嵌套的线程如何互相获取数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值