2021正式批-顺丰一面面经

    今天面试了顺丰,面试过程中主要问到Mysql、redis、数据结构和算法。面试大约23分钟,整体表现给打80分,微应用、redis等问题回答的有点差。下面进行学习总结,过程中如有错误,欢迎私聊我纠正。

第一轮面试题

自我介绍

JVM组成结构

垃圾收集算法

介绍垃圾收集器判断对象存活

多线程的使用方式

JAVA锁用到哪些

CAS应用的弊端,以及ABA 问题

CAS 看起来很爽,但它也有缺点,那就是“ABA”问题。
例如:现有一个用单向链表实现的栈,栈顶元素为A,A.next 为 B,期望用 CAS 将栈顶替换成 B。
有线程1 获取了元素 A,此时线程1被挂起,线程2也获取了元素A,并将 A、B 出栈,再 push D、C、A,这时线程 1 恢复执行 CAS,因为此时栈顶元素依然为 A,线程 1 执行成功,栈顶元素变成了 B,但 B.next 为 null,这就会导致 C、D 被丢掉了。
这个例子充分说明了 CAS 的 ABA 问退带来的隐患,通常,我们的乐观锁实现中都会带一个 version 字段来记录更改的版本,避免并发操作带来的问题。在 Java 中,AtomicStampedReference 也实现了这个处理方式。

Mysql索引类型

Mysql聚簇索引和普通索引区别

Mysql数据库优化方式

redis哨兵原理和主从架构的区别???(问题没听懂)

其实问题是这样的,redis哨兵原理和redis Cluster集群区别?

听说你算法不错,来做一道题吧

手撕代码,给出一个数组和目标值,找出数组中两个数总和为目标值的下标

Java框架知道哪些?

微应用有了解吗?

前端技术有了解吗

总结

总体表现打80分,二面没有了,有点意外。凉凉。

坚持原创技术分享,您的支持将鼓励我继续创作!