面试题

JUC多线程及高并发

一、请你谈谈对volatile的理解

1、volatile是java虚拟机提供的轻量级的同步机制

2、JMM(java内存模型)

3、你在那些地方用过volatile

二、CAS你知道吗

1、compareAndSet----比较并交换

2、CAS底层原理?对Unsafe的理解

3、CAS缺点

三、原子类AtomicInteger的ABA问题?原子更新引用?

1、ABA如何产生

2、如何解决?原子引用

3、时间戳的原子引用

四、我们知道ArrayList是线程不安全的,请编写一个不安全的案例并给出解决方案

1、线程不安全

2、导致原因

3、解决方法:**CopyOnWriteArrayList

五、公平锁、非公平锁、可重入锁、递归锁、自旋锁?手写自旋锁

1、公平锁、非公平锁

2、可重入所(递归锁)

3、独占锁(写锁)/共享锁(读锁)/互斥锁

4、自旋锁

六、CountDownLatch/CyclicBarrier/Semaphore使用过吗

1、CountDownLatch(火箭发射倒计时)

2、CyclicBarrier(集齐七颗龙珠召唤神龙)

3、Semaphore信号量

七、阻塞队列

1、队列和阻塞队列

2、为什么用?有什么好处?

3、BlockingQueue的核心方法

4、架构梳理+种类分析

5、用在哪里

6、synchronized和lock有什么区别?
用新的lock有什么好处?请举例

八、线程池用过吗?
ThreadPoolExecutor谈谈你的理解

1、Callable接口的使用

2、为什么使用线程池

3、线程池如何使用

4、线程池的几个重要参数介绍

5、线程池的底层工作原理

九、线程池用过吗?
生产上你如何设置合理参数

1、线程池的拒绝策略

2、你在工作中单一的/固定数的/可变的三种创建线程池的方法,用哪个多

3、你在工作中时如何使用线程池的,是否自定义过线程池使用

4、合理配置线程池你是如何考虑的?

JVM

1、什么是垃圾?
2、要进行垃圾回收,如何判断一个对象是否可以被回收
3、哪些对象可以作为GC Roots对象
4、你平时工作用过的JVM常用基本配置参数有哪些
5、强引用、软引用、弱引用、虚引用作用分别是什么
6、GC算法
7、4种主要垃圾收集器
8、加入生产环境CPU占用过高,谈谈分析思路和定位?
9、对于JDK自带的JVM监控和性能分析工具你用过那些?一般怎么用?

Mysql

1、数据库存储引擎 myiasm innodb
而MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独

立的。
2、介绍下表锁机制,读读 读写 写写
3、为什么建议使用自增列作为主键,相比于非自增主键有哪些好处?
4、为什么使用数据索引能提高效率
5、、B+树索引和哈希索引的区别
6、B树和B+树的区别
7、为什么说B+比B树更适合实际应用中操作系统的文件索引和数据库索引?
B+的磁盘读写代价更低,B±tree的查询效率更加稳定。
8、MySQL联合索引
9、什么情况下应不建或少建索引
10、关于MVVC
11、什么是回表、索引覆盖和索引下推?
12、事务并发一般都会产生哪些问题?
不可重复读的重点是修改,幻读的重点在于新增或者删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值