- 优质文章
title: 中小厂(五八、中通、安硕、浩鲸…) Java 后端面经 shortTitle: 中小厂(五八、中通、安硕、浩鲸…) Java 后端面经 author: Guide category:
- 优质文章
《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 框架!启动速度快到飞起
 
如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻
你可能感兴趣的文章
                        
                            0
                        
                        
                             赞
                        
                    
                    
                热门推荐
- 
                        2、 - 优质文章
 - 
                        3、 gate.io
 - 
                        7、 openharmony
 - 
                        9、 golang