2021Java后端面经分享

秋招结束了实习也离职了,无聊分享一下春招实习和秋招的面经。秋招拿了保底就直接躺平了,面的厂也不多。吐槽一下现在互联网是金7银8了,集邮大佬们8月基本就收割完结束秋招了,要准备还是得早点准备。

还有一点想说的是没有项目经历的同学想做项目丰富简历的话谨慎选择秒杀商城,面试官都问烂了,毫无兴趣,虽然做起来确实可以学到挺多东西。

钉钉-一面

/**
 * 1:用多线程实现一个生产者和消费者模式。
 * 一个线程负责往集合里put 1-100的数字,另外一个线程负责get数字并进行累加,并打印结果。
 */




/**
 * 实现一个函数:输入是一个标准的 url 字符串,返回值是这个 url 上所有 get 参数以及值的集合,
 * 返回值的格式可以自己设计。不能使用 URL 解析库,允许使用编码解码库。
 * 要求:工业库级别的底层api,考虑例如:正确性、健壮性、性能、测试、可读性、维护性等等
 */


上来先写代码二选一,然后结合代码问问题

1.collection中有哪些*接口?

2.为什么用ReentrantLock?lock.lock应该写在try里面还是外面?lock以后宕机了怎么办?

3.LinkedList和ArrayList区别?

下面开始问项目

4.不用缓存,只用数据库,如何设计秒杀系统?写出表设计和sql语句

5.设计一个服务注册与发现中心

6.说说sentinel的底层原理

钉钉-二面

主要还是聊项目

订单服务中最重要的是啥?

如何设计秒杀?想要实时的显示库存怎么办?

海量数据topk问题——100万人体重选出前5000个最小的

快排思想

最近看的书?

平时兴趣爱好?

蚂蚁- 一面

说一下缓存击穿雪崩和穿透问题

为什么要用分布式锁?你对分布式锁的看法?能不能不用分布式锁来实现同样的效果?

object类有哪些方法?说一下finallize方法?为什么不推荐使用?

双亲委派机制?为什么?

http请求如何在你的系统里传递运行的?controller怎么识别请求的?

http请求的结构?

布隆过滤器说一下?布隆过滤器失效如何更新?

类加载机制和java内存模型

list array区别

如何部署微服务的?docker上怎么部署

蚂蚁 二面

全程问项目,问的都是简历上写的,都是问源码实现细节

nacos怎么进行服务发现与配置更新的?

Seata分布式事务的原理?

rabbitMQ的原理?和kafka的对比?rabbit用什么语言写的?有空去看看rocketMQ吧

字节商业化 一面

rocketmq和rabbitmaq对比?

数据库count慢查询怎么解决?维护一个总值变量

缓存问题,为什么不能先删缓存再更新数据库?可能会读到脏数据

hashmap说一下

算法:旋转数组的最小值

字节商业化 二面

分表方案?索引结构?B+树结构?慢查询优化

提交订单如何保证幂等性

请求如何传递到你的接口的?

redis如何持久化?AOF说一下

tcp和udp区别

tcp如何保证可靠性

zset的实现?

实现一个lru缓存

说一下操作系统的虚拟内存

算法题:链表重排序 1->2->3->4->5->6->7 变成 1->7->2->6->3->5->4 。要求O1空间复杂度。先获得链表中点,再把后半段逆序,再合并链表。(没要求运行)

字节商业化 三面

http请求的数据结构?

http响应码?302是啥

有哪些限流算法?他们之间的区别?手写漏斗算法

字节商业化 直通车

-分布式事务的框架解决问题

2pc 3pc区别

-mysql , 数据内存和磁盘的一致性。redolog在磁盘里?

java

堆溢出、栈溢出

内存屏障,volatile

AQS数据结构(lock)

操作系统进程和线程

JVM线程和linux线程

GC

算法1

买票问题,

一年,365天,出行日期不确定

days(1,3,4,7,29 , 33,40-----)

日票,price[0] (1天)

周票,price[1] (7天)

月票,price[2] (30天)

int minPrice( int[] days , int[] price) {

}

算法2

Cmn m --- n 组合

12345 5 3

123

124

...

345

Shopee一面

算法:出现次数超过数组一半的数

innoDB的特征?可重复读如何实现的?串行化如何实现的?非聚簇索引的存储结构?

分布式系统的配置中心需要考虑哪些问题?限流熔断:考虑全方面点。数据库性能等

NIO说一下

tcp和udp的区别

Shopee二面

算法:三数之和

秒杀:cache挂了咋办?在数据库上层用锁竞争。

分布式事务问题,空回滚问题。

分库分表中间件解决的最重要的的问题是啥?

拼多多一面

tcp 慢启动 快重传

消息中间件 消费顺序

一致性哈希问题 槽

mysql 乐观锁与悲观锁如何实现的?使用乐观锁悲观锁需要注意什么问题?

算法:链表模拟加法 优化代码

拼多多二面

如何对一个服务进行整体的限流?整个服务可能很多机器,限流成1万qps?配置中心。

分布式事务?

算法:ip地址查询。给定10万个IP区间,如[192.168.1.1,192.188.1.1]->上海,输入一个ip地址,返回给定的区间,如果没有返回null。如果高并发场景需要对其进行修改怎么办?

拼多多三面

手写快排

二阶段三阶段区别?说一下raft的细节

腾讯-S2财经线

什么是微服务?

常用的设计模式有哪些?

消息队列消息消费的顺序性?

除了nacos还了解过别的注册中心吗?dubbo了解过吗?

jvm永久代的直接内存?

linux进程的通信方式

mysql慢查询分析?innodb索引结构?B树和B+树的区别?

docker了解吗?linux容器化

腾讯 CSIG

类加载器,为什么打破?jar包隔离怎么做

动态代理类是静态生成的还是动态生成的?

什么是AIO?NIO?异步阻塞?异步非阻塞?同步阻塞?同步非阻塞?

nacos如何保证一致性?raft如何更新节点?和leader冲突了怎么办?

tcp状态?linux查看tcp状态命令?

java线程的状态?sleep是blocking吗

java命令?jvm命令?

跳表了解过吗?时间复杂度?

哈希冲突如何解决?

操作系统如何做到资源隔离?

OSGI了解过吗?

100亿字符串查一个字符串是否存在怎么做?

代码题:两数之和、sql:查出当天签到用户的连续签到天数

腾讯TEG

手写归并排序

秒杀系统有啥优化点?

类加载器?JVM?CMS的并发清除是啥?static和final是啥?==和equals的区别?C++和Java的区别?

上一篇:2021Java大厂面试知识分享,苦熬一个月


下一篇:Guzzle Unable to parse JSON data: JSON_ERROR_SYNTAX - Syntax error, malformed JSON