作者:小傅哥
沉淀、分享、成长,让自己和他人都能有所收获!😄
最近给大家整理一些面试现场,真实的面试题和答案以及总结
虽然技术的知识点是固定的,但不同大厂不同面试官的提问方式却不一样。一方面是你的简历的内容影响,另外一方面是受面试官的个人经历导致。最终就看你们是否对脾气了,如果不对换个部门重新投
但如果你能把一个知识点真的搞懂,是真的懂。那么,无论面试官怎么问,其实都能回答的很精彩,精彩决定了你的职位和薪资。
为了让大家在以后的面试中都能精彩,像秀一样,特此准备整理一些真实的面试现场分享给大家,希望对每一个求职时都有帮助。不过这些都是底层技术的学习帮助,如果你希望自己更牛,那么要多学习、多积累!
如果本文涉及的 Java 核心内容不能很好的理解,可以阅读小傅哥的《Java 面经手册》,全书共5章29节,417页11.5万字,耗时4个月完成。涵盖数据结构、算法逻辑、并发编程、JVM以及简历和互联网大厂面试等内容。同时此书并不是单纯的面试题,也不是内卷八股文。而是从一个单纯的和程序员有关的数学知识点开始,深入讲解 Java 的核心技术。
背景
小伙伴面的是美团,求职方向是团队技术负责人。此次面试以连环追问的方式为主,喜欢刨根问底,非常考研面试者的技术功底。以下是整理出的部分面试题
,我们看看这些题该如何回答。
先让写个线程安全的单例模式
public class Singleton {
private static volatile Singleton instance;
private Singleton() {
}
public static Singleton getInstance(){
if(null != instance) return instance;
synchronized (Singleton.class){
if (null == instance){
instance = new Singleton();
}
}
return instance;
}
}
双重检查锁
和CAS忙等策略。而双重检查锁的单例方式,对于面试官和求职者来说,可以往下继续聊的点就有了。高并发下,单例模式会存在哪些问题?
可见性和指令重排是怎么回事?
voliate 关键字为什么可以解决可见性和指令重排?
可见性
volatile 的好处
,volatile 是一种非锁机制,这种机制可以避免锁机制引起的线程上下文切换和调度问题。所以,volatile 的执行成本比 synchronized 更低。volatile 的不足
,volatile 关键字只能保证可见性,不能保证原子性操作。指令重排
public volatile boolean sign;
descriptor: Z
flags: ACC_PUBLIC, ACC_VOLATILE
lock addl $0x0,(%rsp)s
除了双重检查锁之外,还有什么别的办法实现线程安全的单例模式。
public enum Singleton {
INSTANCE;
public void test(){
System.out.println("hi~");
}
}
@Test
public void test() {
Singleton_07.INSTANCE.test();
}
你看过什么源码吗?JVM 的源码是否看过?
Dubbo是怎么工作的?
Dubbo通信是用的什么协议?
9 . 属于网络传输中的哪一层?
TCP/IP协议来说建立连接的时候,为什么需要三次握手?
你刚才说你们公司用的是Kafka,那么你觉得什么场景下要用到Kafka呢?
特性 | Kafka | RocketMQ | ActiveMQ | RabbitMQ |
---|---|---|---|---|
吞吐量 | 高吞吐量,可达 10w 级别 | 高吞吐量,可达 10w 级别 | 1w 级别,吞吐量相交比较低 | 1w 级别,吞吐量相交比较低 |
时效性 | 延迟在 ms 级 | 延迟在 ms 级 | 延迟在 ms 级 | 延迟在微妙级,延迟最低 |
可用性 | 天然的分布式系统,数据有副本机制,可用性非常高 | 分布式架构,可用性非常高 | 主从架构,可用性较高 | 同 ActiveMQ |
维护性 | 基于 Java 和 Scala 语言 实现,社区活跃度高,维护成本较低 | 基于 Java 语言实现,社区活跃度高,维护成本较低 | 基于 Java 语言实现,消息队列场景功能很完备,但社区活跃度较低,维护成本较高 | 基于 erlang 语言开发,社区活跃度一般,小团队维护成本较高 |
你觉得对于一个消息中间件来说,需要达到哪些要求?
Kafka是如何做到高吞吐量的?
接下来是关于一些项目的问题
面试复盘
豆豆
的总结,也是此次求职者的分享;“程序员不是一个木偶人,不只是被动的接需求或者任务,也不能只是埋头苦干”。公司是没有永远稳定的,互联网的变化也更多,只有自己拥有了留下的本事和走出去的能力,才是个人的最安全区域。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。