中小厂(五八、中通、安硕、浩鲸...) Java 后端面经
约 2112 字大约 7 分钟
《Java 面试指北》来啦!这是一份教你如何更高效地准备面试的小册,涵盖常见八股文(系统设计、常见框架、分布式、高并发 ......)、优质面经等内容。
JavaGuide 在线阅读网站:https://javaguide.cn/
你好,我是 Guide。
简单对知识星球的球友分享的一些中小厂面经做了一下总结,准备面试或者想要跳槽的朋友可以拿来自测一下。
由于问题太多,我这里就不贴参考答案了,需要参考答案的朋友可以在下面 3 个资料中找到:
- Java 面试题&面经汇总
- 《Java 面试指北》
- JavaGuide 在线阅读网站:https://javaguide.cn/
以下面经来自知识星球的 W 同学。
五八同城
- 自我介绍。
- 说一下项目的技术栈。
- 项目中遇到了什么困难?怎么解决的?
- MySQL 和 Redis 怎么保持数据一致?
- RocketMQ 广播消息 丢失消息怎么办?
- 分布式事务了解吗?
- 说一下怎么实现的分布式事务?还有没有其他的解决方案?
- RocketMQ 能做分布式事务吗?
- 并发事务带来了哪些问题?
- 问一下 MySQL 默认隔离级别,可以解决幻读吗?(考察 当前读 快照读 间隙锁 等)
- MySQL 的隔离级别是基于锁实现的吗?
- 多个人给一个主播打赏怎么设计?我说是一个高并发写的操作,对一个记录频繁写,分批操作,比如 10 个记录 操作一次。他说这个方案可以 但是有 100 个记录 怎么去做一个一个操作呢?我说如果在一个进程可以 分多个线程分批。他说还是不够快 我们是用的 MQ 多个消费者 一个打赏就发一个消息
synchronized
和volatile
区别?synchronized
有了为什么还要ReentranLock
,有啥不一样?- 接口和抽象类有什么区别?
- 泛型有啥用?泛型擦除是啥?
总结:整体上 先问项目问项目依赖的中间件,问技术方案怎么设计,比较符合开发场景,MysSQL 间隙锁需要补充一下
最后点评:项目和技术广度很好 但是深度不够,说 MySQL 间隙锁不是很熟悉
上海中通
- 讲一下
ArrayList
和HashMap
底层数据结构,优缺点,使用方式。 ConcurrentHashMap
有用过吗?- CAS 设计思路和原理?
ThreadLocal
底层原理?什么场景使用的ThreadLocal
?- 用到了 Java 8 的哪些新特性?
- Lambda 怎么用的,Stream 的实现原理?
- 除了刚刚的场景 还有什么场景使用过异步任务,并发任务计算结果后做聚合 么做?
- 网络编程用过吗?IO 讲一下
- 你开发中都用到了什么设计模式?
- 工厂模式的设计理念是什么?有什么好处?体现了什么编程思想?
- 适配器模式了解吗?策略和适配器模式有什么区别,你为什么选择用策略模式而不是适配器原因是什么?
- JVM 调优经验 说一下做了什么?
- Spring 事务注解
Transaction
实现原理? - A 方法调用 B 方法,如果 B 方法开启事务 则直接用 B 方法的事务,如果是你,你怎么设计怎么做?
- InnoDB 的默认隔离级别,可重复读,解决了什么问题,没有解决什么问题?
- 什么场景下使用了 ES?
- 倒排索引 是什么讲一下?
- 为什么 ES 检索比较快?
- 你使用 MQ(RocketMQ 和 Kafka)的应用场景什么?
- 你说系统单接口 qps 达到了 8W 你做了性能优化,这个是怎么做的?本地缓存用了什么删除策略?本地缓存设置了多大?
- 做了重试保证订单的最终一致性 这个是怎么做的重试?
- MQ 消息积压遇到过吗?你是怎么处理这个?
以下面经来自知识星球的傅晓海同学。
上海安硕信息
- Dubbo 使用的注册中心和推荐的协议
- Redis 的具体应用
- Spring 的常用注解
- MySQL 的默认数据库引擎
- MySQL 支持哪些存储引擎?默认使用哪个?
- MyISAM 和 InnoDB 的区别是什么?
- 看毕设
上海地听
- 什么是多态?
- JSP 内置对象有哪些?
- 什么是跨域问题?如何解决?
- 一个 Tomcat 上发布两个项目,一个端口 80,一个 81,相互之间调用算不算跨域
- 说说索引和主键的用途。
- MyBatis 中
#{}
和${}
的区别? - 单例模式的实现。
- 链表和队列的特点,查询和增删改的时间复杂度。
- Spring 的常用注解
@Required
注解的作用- 如果有一条 SQL 语句执行的很慢,怎么进行优化?
- 存储过程是什么,有什么特点?
南京浩鲸科技
- 常用的数据结构有哪些?
- 数组和链表的区别,以及获取元素的时间复杂度
- 线程池的特点和具体实现,线程的状态,
notify()
和notifyall()
的区别- MySQL 索引的分类
- 什么是视图
- 事务的隔离级别以及解决了哪些问题
- IOC 源码
- Spring 常用注解和作用
- AoP 的具体应用
- Spring 事务
上海华讯
- 接口和抽象类的区别
- 内部类有哪些以及特点和应用
- 数组和链表
- 快速排序算法
- 异常的处理方式
HashMap
的底层数据结构hashcode
的作用,如果hashcode
相同,怎么存入元素- 内连接和外连接的区别
- 分组查询的关键字
- 如何开启慢查询日志
- 数据库优化技巧
- 索引的分类
- 主键索引和唯一索引的区别
- Spring 通过注解实现 DI 的原理
- 什么是 RESTful 风格
- Spring 和 Mybatis 整合的步骤
- Mybatis 执行流程
·········· END ··············
欢迎加入我的知识星球获取更多面试干货,《Java 面试指北》持续更新完善中!
《Java 面试指北》目录
近期文章精选 :
- 今年找工作有点难!
- 上岸美团、华为、字节!
- 顺利找到工作了
- 八股文又又又更新了!
- 大专非科班上岸银行外包,很开心!
- 拿了几十个 offer,我依然很 emo
- 虾皮二面:MySQL 支持哪些存储引擎?MyISAM 和 InnoDB 的区别是什么?
- 一款跨时代的高性能 Java 框架!启动速度快到飞起
如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻