面试题
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、事务并发一般都会产生哪些问题?
不可重复读的重点是修改,幻读的重点在于新增或者删除
本文地址:https://blog.csdn.net/qq_33029793/article/details/107448660
上一篇: 阿里云面试官:如果是MySQL引起的CPU消耗过大,你会如何优化?
下一篇: Go语言复制文件