记一次狂怼多线程的面经

多线程

  • 有什么方法可以监控线程的状态
  • synchronized 的作用
  • synchronized 底层是怎么实现的
  • synchronized 有哪几个使用方式
  • 修饰方法和修饰代码块有什么不同
  • synchronized 为什么要添加对象锁,即 synchronized () 中,为什么要有这个括号里面的内容
  • 说下并发包和 synchronized 的区别
  • 说下 Java 内存模型是什么
  • volatile 作用是什么
  • volatile 底层是怎么实现的,从指令层面分析
  • 为什么不用 volatile 修饰每个变量呢
  • ThreadLocal 了解吗
  • CountDownLatch 了解吗
  • 列举有哪些线程池
  • 只有一个线程的线程池有什么作用,是来搞笑的吗
  • ThreadPoolExecutor 类的构造参数有哪些
  • 如果程序一直在添加任务,线程池的处理过程是怎样的,结合构造参数来解释

jvm

  • 有哪些 gc 算法
  • 什么对象刚创建的时候直接进入老年代,非字符串对象
  • 什么对象可以进入老年代
  • 新生代的 s2 区有什么作用
  • 什么情况下会 OOM
  • 说下一个对象从创建到销毁的整个过程

redis

  • 排行榜怎么设计
  • 有序集合增加元素的时间复杂度是多少
  • AOF 和 RDB 的区别
  • redis 有大量任务需要消费,现在有两种消费方案,有什么不同?
    • 由一个开了 30 个线程的线程池不断消费
    • 3 个线程不断获取 redis 任务,并将任务传给一个开了 30 个线程的线程池处理

其他

  • hashtable 和 ConcurrentHashMap 有什么不同
  • ConcurrentHashMap 如何保证线程安全,1.7 和 1.8 都说下
  • NIO 和 BIO 的区别
  • NIO 的经典实现是怎样的(这个问题我不太确定,当时有点懵)

mysql

  • explain 作用
  • 一般看 explain 输出信息的哪些内容
  • 表有 a、b、c 字段,其他a、b独立建个索引,则下面的 sql 经过 explain 后会输出什么信息,哪些字段会走索引,哪些不会
    select * from table where a = xx and b = yy order by c;

场景题

  • 秒杀场景如何设计

PS:本文原创发布于微信公众号「不只Java」,后台回复「电子书」,说不定有你想要的呢。公众号专注分享 Java 干货、读书笔记、成长思考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值