2020 Java开发某互联网一线大厂面试题 每天看一遍 提醒自己有多菜

一面

1、JVM如何优化的?CMS算法执⾏流程?什么情况下发⽣的Full GC?
2、分布式事务讲⼀下?可靠消息⼀致性实现⽅案 + 最⼤努⼒送达通知⽅案,最后也提到了单应⽤多DB(JPA)、TCC事务以及适⽤场景。
3、ES是如何调优的?副本机制作⽤?

二面

1、将最近做的两个项⽬详细讲解 + 现场画出整体系统架构图并结合架构图讲解+ 设计模式类图
3、MySQL数据库底层实现结构?B+树结构,也讲了数据⻚,以及⻚⽬录相关的
4、Spring Bean循环依赖如何解决的?
5、MyBatis⼆级缓存如何实现的?
6、分布式缓存讲下CouchBase基本原理?
7、RabbitMQ如何保证⾼可⽤的?queue数据在节点之间如何同步的?死信队列如何实现的?

三面

讲解项⽬从客户端到后端的具体流程。扩展技术⾯,⽐如Http2都有哪些改进的?Redis最新特性了解哪些?等等

四面

1、介绍具体项⽬突出贡献
2、⾼并发与性能的关系?根据项⽬经验⾃有发挥
3、缓存和数据库⼀致性如何保证的?谈到了分布式锁,那详细讲讲分布式锁实现?redis setnx、redisson、zookeeper
4、项⽬架构中如何做技术选型?

S部门一面

1、JVM中的CMS和G1垃圾回收器所对应算法的具体区别?
2、线程池相关问题

1、Dubbo
1.1 说⼀下Dubbo的具体执⾏流程,涉及哪些模块,作⽤?
1.2 使⽤过过Dubbo哪些特性,做过哪些扩展?Dubbo⾥的泛化有了解过吗?
1.3 Dubbo中的注册中⼼Zookeeper是如何注册上去的?
2、Zookeeper
2.1 Zookeeper节点有哪⼏种类型(临时、持久)?
2.2 如何注册的,如何选举的(选举算法?),
2.3 如何完成监听或者说是订阅的?
2.4 提到了分布式锁,在Curator框架中是如何实现的,watch机制本地数据结构啥样的?
3、Redis
3.1 都⽤过哪些数据类型?分别介绍下使⽤场景?
3.2 持久化机制,AOF、RDB具体区别有哪些?
3.3 Redis 主从同步机制是怎么样的,⽐如slave启动之后同步过程?
3.4 Redis Cluster集群如何选主的?
3.5 Redis Cluster 跟哨兵模式有什么区别吗?
3.6 Sentinel 哨兵模式是如何选主的?这⾥说跟cluster差不多,追问了下,其实还是有些区别的, sdown odown 主观宕机、客观宕机⽅式不太⼀样
4、Kafka
4.1 ⽣产端是如何发送⼀条消息到Broker的?
4.2 具体可以调整哪些参数提升吞吐量?
4.3 消费端发⽣rebalance的过程是怎样的?⽐如有⼀个新的consumer加⼊
到了Group中是个什么流程?
5、⼿写算法
算法题:⼀个链表,输⼊k,⽐如k=3,翻转前3个链表值

S部门二面

1.Redis哪里不够专注的地方,因为Redis5.0还提供了Stream作为持久化队列解决⽅案,Redis应该更专注分布式缓存这块,反⽽野⼼也很⼤,还要⽀持类似MQ的功能,并且也参考了Kafka设计思想,所以也不够专注。

2、 ⼿写多线程题⽬:T1线程输出都是A,T2线程输出的都是B,T3线程输出的都是C要求三个线程启动后输出顺序:ABCABCABC

基础知识必备:
数据结构与算法(如果不是面头条这种公司,掌握常用数据结构算法就够了)、Java基础、JVM、并发、⽹络&NIO、设计模式

中间件相关:
缓存(Redis为主)、消息队列(Kafka、RabbitMQ、RocketMQ)、数据库(MySQL)、搜索(ES)

分布式相关:
分布式理论(CAP、BASE)、分布式锁、分布式事务、分布式幂等框架&源码相关:Spring、MyBatis、SpringBoot、SpringCloud、RPC(如:Dubbo)、Netty等常⽤框架

架构&容器相关:
微服务架构(架构演进过程)、微服务拆分原则、容器化(了解Docker & Kubernetes)

项⽬经验:
项⽬整体架构(能画出来)、项⽬上下游关系(能将明⽩)、项⽬实现细节、项⽬主要亮点

猜你喜欢

转载自blog.csdn.net/qq_33229669/article/details/107802464