社群面试真题系列之1: 完美世界校招面试题
文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 :
免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备
免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《Java高并发核心编程(卷2)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《Java高并发核心编程(卷3)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《尼恩Java面试宝典 最新版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 资源宝库: Java 必备 百度网盘资源大合集 价值>10000元 加尼恩领取
以下面试题,来自于 疯狂创客圈的卷王群, 是小伙伴们碰到面试整体,收集起来,供大家一齐来学习参考
本系列博客的具体内容,请参见 Java 高并发 发烧友社群:疯狂创客圈
-
类加载机制(双亲委派+类加载细节)
-
jvm内存模型
- 对象创建在什么区域
- 元空间里放什么
- jdk8引入原空间有什么用
- 堆栈的区别
- jvm收集器、收集器的执行过程
-
反射
-
String 是不可变的怎么看 , 怎么实现的
- 我想应该会问final修饰的特点
- 手写string 转int
-
final 、 finally 、 finalize的区别
- 对finalize的理解
-
接口和抽象类的区别
-
java中的异常体系
- ClassNotFindException和NoClassDefError的区别
- 把你知道的异常说出来
- RunTimeException和Exception
- error和Exception的区别
-
gc
- gc roots 有哪些
- 怎么判断一个对象是否可回收
- CMS和G1的回收过程、区别、几次STW
- 担保机制
- 会使用到哪些函数
-
java中集合的继承体系
-
讲一下list set map
-
arrayList和LinkedList的区别 举例说明?
-
concurrentHashMap是怎么保证线程安全的
-
jdk 1.8 的stream流对集合怎么操作
-
hashMap和红黑树的区别
-
TreeMap、LinkedHashMap 、 HashMap底层数据结构
-
HashMap put流程
-
让你设计一个HashMap防止死锁,要怎么设计,使用volatile关键字
-
-
红黑树
- 数据结构
- 为什么比链表快
-
线程
- 创建线程的方式
- 阻塞线程的方式
- java中并发创建对象
- 进程线程、协程的区别
- volatile
- 底层原理
- 线程从running 状态转换到blocking状态
- synchronized和RentrentLock的区别
- 线程池的参数以及含义
- 如果corePoolSize = 0 会怎么样
- 产生死锁的条件
- reentrantLock介绍、notify源码
- 为什么分为用户态、内核态
- 什么程序在用户态执行、什么程序在内核态执行
- 锁升级的过程
- threadLocal的底层实现原理、源码
- 信号量
- 如何保证操作的原子性、不使用同步
- cas如果一直失败的解决办法
- 锁、可重入锁、AQS
- 并发容器类
- 线程的状态
- sleep和wait的区别
-
mysql、
- 三大范式
- 索引在哪些场景下会失效
- 怎么查看一个sql使用到的索引
- mysql的持久性是怎么保证的
- 什么是幻读
- mysql是怎么解决幻读的
- 索引分类
- 聚簇索引的叶子节点、非叶子节点都保存什么
- 命中索引的过程
- 什么时候不命中索引
- update语句的执行历程
- 覆盖索引
- 什么是回表
- union的使用场景
- 存储引擎
-
Spring
- ioc的好处
- bean的生命周期
- 创建bean的方式
- AOP的切点、切面和通知
- bean的三级缓存
- 循环引用问题
- boot相比于ssm的优点
- springcloud的各个组件
- MVC的工作原理
-
MQ
- 有什么用
- kafka
- 消费顺序、消费丢失、消费重复
-
mybatis
- ${}和#{}的区别
-
Http2.0的新特性
-
IO
- 多路复用
- 如何确认是一个webSocket的连接
- NIO
- 哪个类可以byte转String
-
设计模式
- 单例模式
-
Redis
- 数据类型
- 缓存穿透和缓存击穿
- 内存淘汰(定期+惰性+策略)
- 事务与mysql事务比较
- 持久化机制(用到了哪些)
- 清除过期数据的几种策略
- 具体都是怎么实现的
- 是单线程的,为什么
- 快的原因
- 部署方式
-
TCP
- 三握四分 (越详细越好)
- 滑动窗口协议
- 输入一个网页、返回结果的流程
- ipv4地址不够用、解决方案
- 如何避免中间人攻击
- 粘包拆包如何处理
- 数据量过大如何解决S
-
算法
- 二叉树的层次遍历
- 二叉树的最大深度
- 完全二叉树的概念
-
手撕
- socket编程、手写实现客户端echo
- 百万量级的随机数去判断1的个数,怎么提高效率;空间足够
- 高速缓存
- 封装起来,允许空间换时间,设计缓存