社群面试真题系列之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的个数,怎么提高效率;空间足够
      • 高速缓存
    • 封装起来,允许空间换时间,设计缓存
posted @ 2021-10-28 09:30  疯狂创客圈  阅读(996)  评论(0编辑  收藏  举报