各大 IT 公司面试大全
2021-12-29 17:38:57 11 举报
AI智能生成
这是本人亲自整理遇到的面试问题,尴涵盖了大部分的面试考点。 点我主页,涵盖 Java 后面面试所有知识点,本人持续整理,目前已帮助20+人拿到 大厂Offer
作者其他创作
大纲/内容
得物-供应链
http 请求结构
tcp 三次握手,为什么要四次挥手
描述下动态规划和分治算法,它们的区别
快排和归并排序的区别
HashMap、ConcurrentHashMap
synchronized 和 lock 锁的区别及原理
G1 和 CMS 的区别
redis list、zset 底层实现原理
redis 持久化、主从同步、哨兵、删除策略、淘汰策略
Spring Aop 如何使用及实现原理
Mysql 事务实现原理
单例模式有哪几种写法?双检锁为什么要多次判断
新奥
redis incr 命令实现原理,key的删除策略,实时删除如何找到有过期时间的key?缓存淘汰策略,集群、主从、哨兵
消费者如何从mq中获取消息的?推模式、拉模式
创建类时,除了 class,还有哪些关键字,说明使用场景
重点聊了下注解,元注解的各种用途,还出了些场景题
锁
sync的原理、优化
lock 和 sync 的区别,使用场景
ReentrantLock 实现原理,公平锁,非公平锁的实现原理,加锁的过程
ReadWriteLock
线程池的参数,运行过程
设计并实现 Map.putIfAbsent() 方法
设计模式在项目中怎么用的,策略、工厂(简单工厂、抽象工厂,工厂方法的区别,使用场景)、责任链
聊一聊 DDD
得物
hashmap 扩容流程?
hashmap 底层数据结构?
java8 中 hash 运算优化?
高并发下 hashmap 数组中死循环如何解决?
rabbitMQ 为啥这么快?
https://www.cnblogs.com/smallJunJun/p/11356076.html
rabbitMQ 集群原理?
镜像队列
mysql 中索引的数据结构?
为什么使用B+树索引?
数据放在叶子节点有什么好处?
字节-变现
你最近做过最有挑战性的项目是什么?
Redis 用的主从还是集群?
集群一个节点宕机了,怎么办?做些什么?
主从模式下: master slave 如何同步数据的?
一致性 hash 算法?
分布式 ID 算法?
mysql 300w 行数据,B+树索引有多高?
mysql 为什么使用 B+树索引?
为什么MySQL数据库要用B+树存储索引?
1,更少的IO次数
因为非叶子节点可以存储更多数据,减少树的高度
2,更适用于范围查询
B+树种范围查询只需要遍历主键索引,找到对应的叶子节点即可。
3,更稳定的查询效率
B+树的数据都在叶子节点,查询复杂度稳定为 树高。
sychronized 底层原理?
AQS了解吗?
MVCC了解吗?
分布式事物?
Redis Zset 了解吗?
底层数据结构?
Spring事务的传播属性?
Spring事务的隔离属性?
数据库 ,Redis 双写一致性?
先更新数据库再删除缓存,删除缓存失败怎么办?
事务回滚
字节-教育
Redis zset 底层数据结构
你工作中最有挑战的一件事,一定要把这件事中涉及的技术点搞清楚
RabbitMQ 高可用方式
有哪几种?
RabbitMQ 实现原理
Redis 消息消费失败,丢失?
文件中有一亿个数,找出出现次数最多的前 n 个数
Redis 为什么这么快?
说说 Redis 的 IO 多路复用?
算法: 给一个数组,找出这个数组中每个每个数字右边比它小的数,没有就 -1
阿里
自我介绍
最近两年工作的核心东西,避免流水账
做了什么参与到了什么,亮点是什么?遇到过什么困难?怎么解决的?
要让面试官直到你解决过什么?
工作中成长与收获?
笔试题
算法
多线程
微店
上家公司 系统规模,QPS 多少?
使用用户?
整个系统的一个请求链路?
限流怎么实现的?
根据项目问其中的技术点?并让你介绍业务背景,怎么做的?
分布式事物?
txc-manager
原理
优缺点
有 mq 情况下的事物?
写DB成功, 发MQ消息 失败
发MQ消息成功, 写 DB失败
发MQ消息成功, 写 DB失败
如何解决?
java 中的线程池如何调度的?
后台线程如何保证不影响应用起停?
介绍下 java 中的锁怎么用的?
Sychronized
锁升级?
Lock -AQS
线上加锁导致的问题如何排查?
jastack
visualVM
我怀疑应用程序线程太多,上下文切换太频繁?如何确定?
压测的时候如何判断一个接口开销最大的方法?
关于sql 优化你有什么要说的?
B+树索引的底层结构?
为什么用了索引就变快?
通过一个 id=1, 如何寻址到叶子节点?
即: 聚簇索引的索引过程?
即: 聚簇索引的索引过程?
hash 索引?
接触过分库分表吗?
分库分表的设计?
什么情况下分库分表?
大数据生态相关的东西了解吗?
linux?
怎么看 linux 进程打开了哪些文件?
JVM 内存泄漏怎么排查?
阿里-菜鸟(二面)
上来就是分 三部分问:
自我介绍-工作经历
项目情况
单体 -》 微服务化
负责系统的业务系统和设计的模块
说一下完整的业务流程?
项目中让你印象深刻的问题?
从技术方面(一定要深入,面试官会问各种细节问题)
jpm 内存快照文件好几个 G,怎么弄到手的?
ThreadLocal 源码
ThreadLocal 如何保证到线程隔离的?
对单例的理解?
immutable
Redis
分布式锁
MQ
设计一个 MQ 消息 100% 可靠的系统
分布式事物使用场景?怎么做的?
分布式事物有几解决方案?
两阶段提交?
三阶段提交?
亮点?
解决的问题?
设计方面?
系统的流量,使用情况?
流量限流,熔断怎么做的?
数据量?
数据库怎么玩的?
你有什么问我的?
阿里-菜鸟 (三面)
讲一下在上家公司的工作?
你们公司开发团队有多少人?
你所在的团队是做什么的?
你们的项目是什么时候开发的?开发多长时间了?
你在里面主要负责什么?
(条理清晰,罗列要点)
你觉得中目中你技术上遇到的有什么复杂的点吗?
说一下你们的系统架构?
网关?
用了啥网关?
网关做了什么事情?
服务间调用?
服务发现?
负载均衡算法?
你们多租户系统怎么体现出来的?
多数据源?
还是同一个数据源?
不同租户数据混在一起?
多租户数据热点问题?
你们的系统怎么做横向扩展?
假如你们系统访问量暴增1w倍,你现在的系统该怎么变化? 该怎么设计?
一致性hash算法解决了什么问题?
hash 表
数组
取模
为什么来杭州发展呀?
通联数据
项目亮点?
sychronized 锁升级?
对象头 markword 有哪些字段?
了解 哪些垃圾收集器?
CMS 有哪些 BUG?
三色标记了解吗?
Spring 循环依赖了解吗?
Spring 循环依赖分为三种:
构造器
Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中。
因此如果在创建Bean过程中发现自己已经在“当前创建Bean池”里时将抛出BeanCurrentlyInCreationException异常表示循环依赖;
而对于创建完毕的Bean将从“当前创建Bean池”中清除掉。
因此如果在创建Bean过程中发现自己已经在“当前创建Bean池”里时将抛出BeanCurrentlyInCreationException异常表示循环依赖;
而对于创建完毕的Bean将从“当前创建Bean池”中清除掉。
setter循环依赖(单例)
Bean 实例化图
对于 setter 方式注入,Spring 是先将 Bean 实例化后再设置属性的, Spring 先将这个 实例化的 Bean 放在一个早期的 Bean 引用池中,当需要 setter 设置属性时,就从这个 早期引用池中寻找赋值. --> 参考: DefaultSingletonBeanRegistry.java
setter 循环依赖(原型)
不支持循环依赖,因为对于 原型的 Bean,Spring 无法进行早期 Bean 的缓存,每次获取的都是一个新对象,无法解决循环依赖.
SpringBoot 自动装配了解吗?
hashmap put 过程?
hashmap resize()扩容?
hashmap hash 算法?
hashmap 什么情况下会造成线程不安全?
你会怎么解决?
你会怎么解决?
volatile 如何保证内存可见性的?
美团
1.线程安全的类有哪些,平时有使用么,用来解决什么问题?
什么是线程安全?
什么是线程安全?
java 并发包下常用的是: ConcurrentHashMap
线程安全: 多线程对共享资源的并发读写操作
结合 JMM; java 内存模型解释
2.mysql日志文件有哪些,分别介绍下作用
binlog
主从复制
三种模式: STATEMENT,ROW,MIXED
结合 海南监管平台的 binlog 日志监听, 发布订阅案例说明
redolog
事物持久性
崩溃恢复
innodb 是以页为单位进行磁盘 IO 的,每次事物完毕,要保证持久性,就要迅速刷盘,性能差
因此 采用 redolog 日志
undolog
事物原子性
失败回滚
undolog 记录的是与操作相反的日志, insert -> delete,update-> update ,以便回滚的时候可以找到更新前的数据.
3. mysql innodb 事物实现原理?
事物四大特性:ACID
事务的原子性是通过 undo log 来实现的
事务的持久性性是通过 redo log 来实现的
事务的隔离性是通过 (读写锁+MVCC)来实现的
而事务的终极大 boss 一致性是通过原子性,持久性,隔离性来实现的!!!
事务的持久性性是通过 redo log 来实现的
事务的隔离性是通过 (读写锁+MVCC)来实现的
而事务的终极大 boss 一致性是通过原子性,持久性,隔离性来实现的!!!
隔离性实现原理:
隔离级别
读未提交
事务中的修改即使还没提交,对其他事务也是可见的。
事务可以读取未提交的数据,造成脏读。
事务可以读取未提交的数据,造成脏读。
不用加锁,效率最高,但是不可靠
读已提交
一个事物未提交的数据对其他事物不可见.
会造成不可重复读
会造成不可重复读
MVCC 实现+读写锁
可重复读
MVCC 实现+读写锁
MVCC:undolog+readview
版本链:ubdolog 日志组成
trx_id
roll_pointer
readview:
作用: 可以判断版本链中哪个版本是当前事物可见的
结构:
m_ids
生成 ReadView 的事物 ID 列表
min_trx_id
最小事物 ID
max_trx_id
最大事物 ID
creater_trx_id
生成该 ReadView 的事物 ID
串行化
全表加锁,事物完全船型执行,效率最低,但是最可靠
4.redis字典结构,hash冲突怎么办,rehash,负载因子?
喜马拉雅
一面
项目
先问项目,再散发稳知识点
mysql 索引
mysql 死锁,怎样曹成的,如何解决
sql 语句性能优化,explian
file sort 了解不
spring 事物传播属性
手写线程池?
手写责任链模式?
二面
说一下你最最有挑战性的项目,遇到的问题,背景,技术,怎么解决的?
说完后,从中摘出来技术点细问
hytrix?
为什么要用这个?
hytrix 原理?
DDD 的理解?
平常喜欢干什么?
众安
主要是项目,中用到的技术点发散提问
hashmap
put 过程
红黑树查询时间复杂度
为什么要用链表,不直接用红黑树
mysql
有哪些组成部分
索引结构
sql 优化思路?
涂鸦
一面: 整个面试过程,感觉面试官都是浅尝辄止的感觉, 整个过程也就 20 分钟.
问个问题,一单发现我能说出来,就 立刻切换到下一个问题, 绝不深追
问个问题,一单发现我能说出来,就 立刻切换到下一个问题, 绝不深追
聊聊职业规划,为什么来杭州?
JVM 内存结构
如何判断一个对象是否是垃圾对象
GC 算法
HashMap
put 过程?
K8s 如何暴露一个 Service?
二面:
技术点扫一遍: mysql, 索引, 缓存穿透,jvm,设计模式等
Object 类中有哪些方法?
散发问道hashcode?
为什么重写equals要重写 hashcode?
设计模式:
你用过啥设计模式结合项目说一下呗?
责任链模式了解不?
有哪些框架用到了什么模式有看过吗?
介绍一个项目
三面:HR
携程(租车)
一面: 技术基础
实现一个LRU 算法,怎么做?
hashmap
currentmentHashMap put 过程? 如何保证线程安全的?
如何判断对象是个垃圾对象?
慢查询优化?
缓存穿透?
请求缓存中不存在的数据会造成什么问题?
怎么解决?
你们的微服务之前如何调用的?
服务注册中心?
K8s 之间如何服务发现的?
二面: 偏项目
画架构图
服务间如何调用
讲项目
一次服务调用链路耗时太长,如何优化?
SQL慢查询优化?
合并远程调用? 减少远程调用次数
异步远程调用?
缓存
三面: CTO
讲业务
谈价值观
对自己未来规划
996 的看法
四面:HR
平安好医生
一面: 技术基础
JVM 内存模型
SpringBoot 的启动过程?
Spring 循环依赖?
SpringAOP 的实现原理?
项目中 Redis 怎么用的?
请求缓存中不存在的数据,会造成什么问题?
怎么解决?
MQ 消息可靠性?
布隆过滤器?
实现原理?
Hytrix?
线程池
熔断过程
滑动窗口怎么实现的
算法: 随机不重复的输出数组中的每个值?
二面: 项目
对接过支付?
遇到哪些问题?
推模式,拉模式?
三面: 部门老大
工作中你最有成就感的一件事?
工作中遇到最有技术挑战的事情?
谈人生,谈理想
四面:HR
食亨
面试官问的偏底层原理,考察独立思考能力
一面
基础
分布式锁怎么实现的?
二面
项目和架构
三面
CTO面, 偏框架底层
JDK 动态代理的实现原理
四面:HR
比心
简单问些技术和项目经验
SpringBoot 的启动流程?
SpringBoot 和 Tomcat 的整合原理?
Spring Bean 的加载过程?
二面会更注重基础
TCP 滑动窗口
IO 多路复用
同步IO与异步IO
redis setnx 底层原理
状态模式与策略模式有什么区别
德邦证券
视频面试: 两个技术面试官一个HR一块面试
sychronized 用在用在哪里? 方法? 代码块?区别?
系统架构和系统调用流程?
如何设计一个高并发系统?
- 系统拆分
- Cache(缓存)
- MQ
- 数据库拆分(分库分表)
- 读写分离
- ElasticSearch
- HTML 页面静态化
- CDN 加速
分布式全局ID 设计思路?
分布式事务
可靠消息一致性事务?
本地消息表
爱回收
一面技术点问的很全面
currenthashmap 的 put 过程?
mysql 隔离级别?
什么是当前读和快照读?
mysql 锁?
读锁和写锁怎么实现的?
可重复读和读已提交的区别:?
1、在可重复读级别下,在事务开始的时候会创建一个readview
2、在读提交级别下,每个语句执行前都会重新生成一个新的readview
2、在读提交级别下,每个语句执行前都会重新生成一个新的readview
select 会加读锁吗?
theadlocal 用过吗?
实现原理?
面向对象设计原则?
SOLID
途虎养车
一面
完全把项目问了一遍,没有问道基础技术
应该是看简历问的
二面
还是项目
画架构图
讲项目
画系统时序图
你做TD 设计的时候一般关注哪些方面?
DDD了解不?
业务复杂性高的情况下怎么解决?
三面
讲项目
遇到最有挑战的项目,怎么解决的?
如何设计一个秒杀系统?
算法:简单级别
求两个无序数组中重复的数字?
数组原地置换法:
如果是有序数组呢?
双指针法
判断回文数字(不能转为字符串)?
翻转一半的数字,与另一半数字比较大小
四面
聊技术,聊职业规划,聊人生
你的优点是啥?
你的缺点是啥?
怎么解决的?
你写博客的动机是什么?
访问量最高的博客是哪一篇?写的啥?
五面:HR
0 条评论
下一页