“金九银十”全靠最新版这份Java后端面试题刷题居然大厂offer收到手软!

发布于:2022-12-10 ⋅ 阅读:(558) ⋅ 点赞:(0)

这不是金九银十临近,有很多小伙伴可都在后台私信说想要整理一份Java后端的面经,小编给大家整理了一些大厂面经希望能对你们有帮助,并赠送一份Java后端面试1000真题文档。

oppo(Java后端)

  • 聊聊你印象最深刻的项目,或者做了什么优化。
  • 你项目提到分布式锁,你们是怎么使用分布式锁的?
  • 常见分布式事务解决方案
  • 你们的接口幂等是如何保证的?
  • 你们的MySQL架构是怎样的?
  • 常见的索引结构有?哈希表结构属于哪种场景?
  • 给你ab,ac,abc字段,你是如何加索引的?
  • 数据库隔离级别是否了解?你们的数据库默认隔离级别是?为什么选它?
  • RR隔离级别实现原理,它是如何解决不可重复读的?
  • 你们项目使用了RocketMQ对吧?那你知道如何保证消息不丢失吗?
  • 事务消息是否了解?场景题:比如下单清空购物车,你是如何设计的?
  • 如何快速判断一个数是奇数还是偶数,除开对2取余呢。
  • Spring声明式事务原理?哪些场景事务会失效?
  • 你们是微服务架构嘛?如果你来设计一个类似淘宝的系统,你怎么划分微服务?
  • 你们是怎么分库分表的?分布式ID如何生成?
  • 所有异常的共同祖先是?运行时异常有哪几个?

百度篇

  • 实习项目介绍一下,单点登录模块怎么实现,遇到什么问题,为什么使用Redis。
  • 练手的项目中:
  • 为什么使用分布式锁,怎么实现的?
  • 超卖和重复订单问题怎么解决?如果有人取消订单怎么办?
  • 限流算法怎么实现,令牌桶算法中如果返还令牌的Redis指令没成功执行怎么办?
  • 如何保证缓存和数据库的一致性?
  • jwt token这里是存储什么数据,登录验证的实现流程是什么?
  • token相比于session有什么优势?
  • 使用的rabbitMQ为了解决什么问题?
  • 下单成功以后用户这边怎么获取到订单页面,是通过前端轮询还是用户主动点击查看订单?
  • 相比于使用websocket,和你项目中的订单推送,两者有什么区别?那种更好一点
  • 计网:tcp和udp的区别,它们的首部分别存储的内容是什么,tcp怎么保证可靠传输
  • 操作系统:讲讲虚拟内存,有什么优点。逻辑地址和物理地址是连续还是离散的
  • java:讲讲java内存模型,谈谈你对volatile的理解,它是怎么实现可见性和有序性的,数据读和写过程中怎么起作用的?
  • 介绍一下java的基本原则,在你的项目中哪里体现了这些原则?
  • 介绍一些设计模式,在开发过程中有哪些体现了这些设计模式(可以是项目、源码或者框架中)
  • 算法:先介绍一下你对排序算法的理解,还有它们的时间复杂度和稳定性(左神的顺口溜直接就背出来了:
  • 选泡插,
  • 快归堆希桶计基,
  • 恩方恩老恩一三,
  • 对恩加K恩乘K,
  • 不稳稳稳不稳稳,
  • 不稳不稳稳稳稳
  • 如果要统计一个学校的分数情况要使用什么排序算法?
  • 手撕算法:无序数组的第K大元素
  • 因为写的太快时间还剩几分钟,强行问了一些项目的问题,回答的不是很ok(建议老哥们可以写慢一点准时下班)

用友篇(Java后端)

2022-8.3 一面(30 min)

主要围绕项目和八股

回忆,可能有遗漏。。

  • 项目中哪里使用到了Redis、kafka
  • Mysql的聚簇索引和非聚簇索引
  • 项目中有没有SQL语句执行很慢的情况,慢SQL(整懵了,最后撤到索引失效相关的知识了..)
  • Redis为什么是单线程的
  • Redis的数据结构有哪些
  • Redis怎么实现和mysql数据同步
  • 了解缓存穿透吗,怎么解决
  • 创建线程的方式
  • 线程池工作原理
  • 描述JVM内存模型
  • 垃圾回收相关
  • 自己的优势是什么,缺点是什么
  • ..

2022-8.10 二面(40 min)

  • 项目中你觉得哪些设计是做的比较好的?
  • 你的二级缓存怎么实现和MySQL的一致性?(回答了异步监听binlog + 删除重试,面试官说还可以引入版本号的方式)
  • 异步监听binlog + 删除重试中,监听的是主服务器的binlog还是从服务器的binglog?
  • 本地缓存怎能实现和MySQL的一致性?
  • 缓存穿透、缓存雪崩和解决方法
  • 项目中给哪些key设置了过期时间
  • MySQL怎么实现乐观锁和悲观锁
  • 乐观锁有什么实现方式
  • spring boot 的 starter 的原理是啥,怎么实现的
  • 数据库的优化怎么做(答了索引优化和查询优化)
  • 索引什么情况会失效
  • 了解设计模式吗?说一下工厂设计模式怎么实现的
  • java中实现锁的方式有哪些(回答了synchronized 、reentranlock和信号量)
  • 怎么避免死锁现象的发生?在代码层面怎么避免(不会哈哈,面试官说可以用排序的方式,学习了)
  • 一般遇到问题你是怎么解决的?
  • 遇到过什么印象比较深刻的问题,怎么解决的?
  • 你怎么上手一个新的知识?
  • 反问
  • 最后面试官给我详细介绍了一下他们部门的现状、技术栈等等

美团篇(Java后端)

  • 1.自我介绍
  • 2.谈谈你对spring的了解
  • 3.mybaties是干什么的,有什么优缺点
  • 4.你为什么选择spring+mybaties架构
  • 5.java怎么实现AOP
  • 6.反射了解吗
  • 7.java垃圾回收机制
  • 8.垃圾回收算法
  • 9.java中常见的map有哪些,有序的map有哪些
  • 10.hashmap的扩容机制
  • 11.http1.0和2.0的区别
  • 12.http和https的区别
  • 13.https的加密过程
  • 14.为什么https还会有被抓包的风险
  • 最后撕了一道算法,最长子序列

由于【Java面试题】的细节内容实在是太多了,毕竟将近2000页的文档,只能把部分知识点里面的章节挑出来介绍一下,每个章节的小节点里面都有更详细的内容!以下就是部分知识点的目录,由于平台的篇幅限制原因,子节点上的详细讲解也无法全部展示,文末有货取以下章节的所有详细知识讲解。

JavaOOP面试题

  • 接口有什么特点?抽象类和接口的区别?Hashcode的作用
  • Java的四种引用,强弱软虚Java创建对象有几种方式?
  • 有没有可能两个不相等的对象有相同的hashcode拷贝和浅拷贝的区别是什么?
  • static都有哪些用法?
  • a=a+b与a+=b有什么区别吗?

Java集合/泛型面试题

  • 说说ArrayList(数组)
  • Vector(数组实现、线程同步)说说LinkList(链表)
  • 什么Set集合
  • HashSet ( Hash表)什么是TreeSet(二叉树)
  • 说说LinkHashSet ( HashSet+LinkedHashMap)HashMap (数组+链表+红黑树)
  • 说说ConcurrentHashMap
  • HashTable(线程安全)TreeMap(可排序)
  • LinkHashMap(记录插入顺序)

多线程&并发面试题

  • start 与run区别JAVA后台线程什么是乐观锁什么是悲观锁什么是自旋锁
  • Synchronized同步锁ReentrantLock
  • Condition类和Object类锁方法区别区别tryLock和lock和lockInterruptibly 的区别Semaphore信号量
  • Semaphore 与 ReentrantLock区别

  • JVM面试题
  • G1收集器
  • JVM类加载机制类加载器
  • 双亲委派
  • oSGI(动态模型系统)动态改变构造
  • 模块化编程与热插拔JVM内存模型

Mysql面试题

  • 分库分表之后,id主键如何处理存储过程(特定功能的SQL语句集)存储过程优化思路
  • 触发器(一段能自动执行的程序)数据库并发策略
  • MySQL中有哪几种锁?
  • MySQL中有哪些不同的表格?
  • 简述在MySQL数据库中 MylSAM和InnoDB的区别
  • MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?CHAR和VARCHAR的区别?
  • 主键和候选键有什么区别?

有需要的小伙伴可直接私信【Java面试】即可!
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到