五面蚂蚁金服(4 次技术面 +1 次 HR)来看看这面试题是不是太难了!
总共 4 次技术面 1 次 hr 面
操作系统
1.进程间通信有哪些,详细说明自己在哪种场景下用过哪种方式
2.死锁产生的条件
3.java 中的线程有几种状态?详细说明
4.os 中管道的实现,问的很深,记不到具体的问题了
5.分段和分页解释一下
6.虚拟地址、逻辑地址、线性地址、物理地址的区别
7.协程和线程和进程的区别,谈谈你的理解
网络
1.三次握手四次挥手,三次挥手可不可以
2.OSI 和 TCP/IP 的区别(第一个问题是问我网络看的哪本书学习的,我说 tcp/ip 详解)
3.http server 服务,现在要做一个针对用户维度或者接口维度的频控,假设一秒 100 这种,问在不改变原有接口服务的情况下,你如何实现
4.网络安全相关,csrf 这种攻击如何防范
5.各种协议问我了解过没有,例如 TCP/UDP/ICMP,这个问题比较常见
6.微服务和 http 服务的区别,你对两者的理解
数据库
1.你自己使用 mysql 中遇到过乱码问题没有,如何解决的,产生原因是什么
2.Select * From table_name where filed_name != NULL 这个 sql 语句是什么意思,你觉得有没有问题
3.关键字 where 和 having 的区别
4.介绍一下 mysql 数据库引擎 innodb,及 mysql 的四种隔离级别
5.用过什么索引,使用这个索引有什么要注意的
6.数据的分库分表会产生什么问题,如何解决
7.写一个 sql 语句,给表 t_score 字段 id(int),score(varchar),team1_id(int),team2_id (int)
给表 t_team 字段 id(int),name(varchar),完成输出这种效果的语句(一条完成):id:xx,team1_name:中国,team2_name:日本,score:4:1
算法
1.给你一个正整数 k,可能会很大但不超过 integer_max,再给你一个正整数 m(0-9),问 1-k 中间有多少个数,m 出现了多少次,如给你 k=12,给 m=1,那么 11,1,12 这三个数,1 一共出现了 4 次
2.一个 N 阶 int 矩阵,人从(0,0)开始走,只能往上或者往右走,矩阵内的数值是该坐标的分值,分值只能获取一次,问这个人从(0,0)走到(N-1,N-1)再走回来,往返获得的分值最大是多少
redis
1.redis 里的五种数据类型
2.解释一下 redisObject 和 SDS
3.redis 里的 sort set 为什么要用跳表不用红黑树,那跳表实现原理说一下
4.缓存不一致如何解决
5.redis 持久化,aof 里的文件写入和文件同步解释一下
6.redis 持久化 aof 和 rdb 分别适用于什么场景
7.redis 各种数据结构,操作的时间复杂度
8.redis 的主从复制原理,有没有可能写操作写到主,读操作读到从,那么读不到最新的数据,但是我如果偏要保证一致性,那如何解决
kafka
1.概念解释,producer/consumer/partition/topic/offset/broker
2.kafka 为什么和其它 mq 比起来,吞吐量高这么多,你有思考过 kafka 适用于什么场景吗,或者你说下你对不同 mq 产品的对比
3.kafka 高可用里的 cap 理论,谈一下你的理解
4.kafka 如何保证消息不被重复消费
5.kafka 里的消息我要指定存到不同的数据源该怎么做
最后
分享《BATJ 面试大全.PDF》,“覆盖了 JVM、高并发、反射、Spring 原理、分布式、微服务、MySQL、数据结构等等”,还有 Java400 道面试真题
需要获取得话麻烦一键三连+评论,然后添加 VX(tkzl6666)即可免费领取
掌握了这些知识点,面试时在候选人中又可以夺目不少。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出
评论 (1 条评论)