欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

面试题

程序员文章站 2022-04-15 13:41:49
https://blog.csdn.net/hzy38324/article/details/46975949 ......

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

相关标签: 面试