New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
https://www.v2ex.com/t/558634 面试F&Q #3
Comments
蚂蚁金服财富二面(两次电话面试)第一次电面解释下乐观锁和悲观锁悲观锁又叫阻塞同步,思路是防患于未然。因为异步可能会产生问题,所以要彻底杜绝异步。 乐观锁也叫非阻塞同步,因为异步不一定会产生冲突,当真正产生异步问题时再同步执行。 JVM怎样判断对象是否应该被回收理论:对象是否有GCROOT(对象的可达路径),如果没有那么就要被回收。 实际:不同型号版本的虚拟机有自己的实现算法。 反射能获得类里面方法的名称吗? 参数名称呢? 参数类型呢?动态代理的实现方式, CGLib和JDK的代理有什么区别分布式锁有哪些主流实现方式? Redis和ZK锁有什么区别ThreadLocalThreadLocal是实现无同步方案的途径。如果一个变量要被多线程访问,可以使用 设计秒杀系统要考虑哪些点从性能角度上如何保证秒杀系统稳定A,B系统转账如何保证分布式数据一致性使用分布式锁 你有什么想问的组里中午、晚上几点就餐?组里的同事会一起吃饭吗? 第二次电面简单介绍下自己的近况对Kafka了解吗? Kafka消息的事务性怎么实现的关于Kafka消息的事务性 Kafka Producer:有三种ack层级,分别是不确认,分区主节点确认,分区所有节点确认 假设事务提交的消息没有发到broker上面,会怎么处理Kafka生产者开启最高等级的ack开关 分布式事务一致性如何保证不同业务不同的保证手段 二阶段提交解释下如果本地事务超时会怎样处理? 一阶段都可以commit, 二阶段的时候协调器发送全局提交的消息,这个时候消息发送失败了会怎么处理? TCC 对异常流是如何操作的为什么要看开源代码当然不是为了应付面试!当然是为了站在巨人的肩上。 最终一致性如何实现的有没有遇到过死锁,A 往 B 转钱,B 往 A 转钱同时的会死锁吗? 如何解决死锁?死锁产生的四个条件:
那么解决死锁,只需要破坏上述四个条件中的一个就可以了。 设计一个全局唯一流水号设计幂等方案防止重复提交大数相加工厂方法模式一般如何实现继承父类,实现生产方法。 单例模式其他的设计模式模板方法模式,策略模式 再答一下上次的秒杀系统写金融类的系统有什么需要关注的地方
非功能性的设计关注那些安全性、可靠性、互操作性、健壮性 你有什么想问的组里今年去旅游过吗?去了哪里? |
蚂蚁金服国际事业群一面简单介绍下自己和项目你觉得项目里最大的挑战是什么理解客户需求,适应客户需求的变化。 为什么选择用Kakfa
对Kafka的了解生产者,消费者,消费者组,主题,发布订阅,消息确认等。 Kafka消息如何顺序Kafka主题每个分区内是有序的,但是分区间并不保证有顺。开发者可以将需要保证顺序的数据发送到同一分区中。 讲讲 dubbo 的基本原理JVM 调优
频繁YGC如何排查
如何知道哪些对象需要被回收,GCROOT有哪些栈和堆有什么区别,什么时候会压栈虚拟机栈与本地方法栈都是线程私有的,堆存放对象是线程共用的。 HashMap如何实现,为什么会变红黑树,如何扩容HashMap数据结构为数组与链表或者红黑树(自平衡二叉树)。当hash冲突时会形成链表。当链表的长度超过 你有什么想问的公司餐厅怎么样? |
蚂蚁金服财富三面如何提前发现你的数据有问题,而不是等到用户反馈才知道设置数据量的每天变化阈值,当数据量变化超过阈值时,触发监控通知。 如何防止超卖为什么要用 RedisRedis的读写速度为11W/S 有没有QPS如何部署发生过丢消息的情况吗, 为什么会丢失,Kakfa如何保证消息不丢失项目的过程中哪个点比较难程序的性能。 项目中为什么要用 ThreadLocal 去做租户的隔离项目有什么缺点100 亿行数据,每个数字32位,取最小的的数字
有没有碰到特别难的事情,如何解决的业界中间件有什么了解吗,讲一个你深度理解原理的高并发的问题有遇到过吗,分布式锁是排他的,如何提升存储效率有没有遇到过很大的流量Kafka除了可以解耦架构,还可以用来做异步存储,化解瞬间高流量。 描述产生一次FullGC的整个过程
平时通过什么来提升自己站在巨人的肩上,U2 is best! 你有什么问题 |
蚂蚁金服财富事业群一面
TreeSet与HashSet区别
观察两者的构造方法
java.util.HashSet
java.util.TreeSet
发现问题可以转化为:TreeMap与HashMap的区别。
TreeMap存储结构为树,增删查的时间复杂度为O(logn)并且成员按照
Comparable
或者Comparator
定义的顺序进行排序。Comparable与Comparator
HashMap使用哈希函数控制元素的索引位置,增删查时间复杂度为O(1),但是当开发者存入的键元素为自定义类时,要记得重写
equals
与hashCode
这两个方法,因为hashCode
的返回值为哈希函数的输入值。HashMap如何解决冲突, 扩容机制是什么
使用链表和红黑树处理哈希冲突。
ConcurrentHashMap如何实现高并发
ConcurrentHashMap是线程安全的HashMap,解决了HashMap并发put丢失数据和扩容死循环的缺陷。
ConcurrentHashMap基于非阻塞同步,也就是CPU的CAS指令实现初始化与某些情况下的put操作(另一些情况下的put还是synchronized实现线程安全)线程安全。
线程池平常怎么用
Executors
提供的不同执行机制都会存在OOM的问题,开发者需要自己定义安全的执行机制。多个线程等待到某一节点然后统一放行的实现方式
CountDownLatch
,CyclicBarrier
可以达到这样的功能。数据库索引结构
MySQL InnoDB:
B+ Tree
select * from t where a=? and b>? order by c limit 100 如何加索引
MySQL InnoDB:
什么是聚簇索引和非聚簇索引
Clustered Indexs: MySQL InnoDB会为表的主键字段创建聚簇索引,在底层结构的叶子节点中会记录完整的表记录。
Secondary Indexs: 非主键字段的索引被称为非聚簇索引,当使用非聚簇索引时,首先找到符合条件的主键字段的值,之后使用聚簇索引查询出完整的表记录。
Redis 里的 CAP 是怎样的
Redis单节点模式满足CA(不涉及网络分区)
Redis哨兵模式满足CA
Redis Cluster模式满足AP
如何理解幂等?项目中接口的幂等是如何做的?
作者最早是在这篇论文中看到了幂等这个词语,意思是过滤重复数据。幂等的实现方式是以实际业务为基础的,对于不同的业务有不同的实现方式。
两个有序的 list,求交集
retainAll可以实现集合交集的计算
The text was updated successfully, but these errors were encountered: