在牛客上看到了这篇帖子
2022届秋招高频面试真题汇总,千题奉送!!!- 后端篇_笔经面经_牛客网
在这里整理一下答案
PS:找不到答案或者看起来有点离谱的问题没有整理 ?
Java线程池核心参数与工作流程,拒绝策略 107
volatile关键字的原理与作用 61
Synchronized和Lock的实现原理与区别 54
synchronized原理 45
ConcurrentHashMap原理,如何保证线程安全 44
AQS实现机制 30
Threadlocal原理、使用场景、内存泄漏问题 24
Synchronized锁升级的策略 16
线程池的实现原理 8
ReentrantLock原理 7
CAS如何解决ABA问题 1
ConcurrentHashMap get、set都加锁了吗?用的是什么共享变量 1
【干货】连肝7个晚上,总结了关于Java基础的16个问题!_程序员小灰的博客-CSDN博客
Java中创建线程的几种方式 36
实现多线程的几种方式? 5
Java创建线程的四种方式_Andy-CSDN博客_java创建线程的四种方式
CAS操作原理与实现 32
CAS 有哪些参数 2
漫画:什么是 CAS 机制?
Java中的锁类型,区别以及锁升级 24
悲观锁与乐观锁及其区别 19
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁_zqz_zqz的博客-CSDN博客_偏向锁
线程的状态及转移 23
线程的六种状态及其状态的转换_Fuzz-CSDN博客_线程有几种状态
Java如何保证线程安全 21
多线程三大特性 4
多线程的三大特性以及Java中如何保证线程安全_旧时明月丶-CSDN博客_多线程情况下如何保证线程安全
wait和sleep的区别 14
如何设置线程池参数 13
hashmap线程不安全问题 12
volatile与synchronizede的区别? 11
synchronized可以锁的内容 8
为什么要用线程池? 3
最大核心线程数怎么定 2
线程间通信 1
Java基础问题整理_xiaofeng10330111的博客-CSDN博客_java基础问题
Java中线程同步的方式有哪些? 11
Java实现线程同步的几种方式?_Michaeles的博客-CSDN博客_java线程同步
JUC包下常用的类 6
CountDownLatch原理 5
fork/join及countdownlatch区别 2
Java多线程---JUC包下的常见类_火星日立的博客-CSDN博客_juc包下面有什么类
线程并发工具类(Fork-Join,CountDownLatch,CyclicBarrier,Semaphore,Exchange)_lw_yang的博客-CSDN博客
可重入锁的实现原理 5
公平锁与非公平锁的实现 5
轻松学习java可重入锁(ReentrantLock)的实现原理_yanyan19880509的专栏-CSDN博客_java 可重入锁
简述一下JMM 4
简述Java内存模型(JMM)_王壮zhuang的博客-CSDN博客_简述java内存模型
简述什么是自旋锁 4
面试必备之深入理解自旋锁_weixin_33995481的博客-CSDN博客
为何缓存分三级而不是两级? 3
CPU中的一级缓存,二级缓存,三级缓存_王小二(海阔天空)-CSDN博客_一级二级三级缓存
读写锁实现方式 3
读写并发,若读多写少,如何设计实现? 2
Java--读写锁的实现原理_yupi1057的博客-CSDN博客_java读写锁实现原理
ArrayList线程安全吗?多线程环境下怎么使用ArrayList? 3
ArrayList 线程安全问题_Be yourself.-CSDN博客_arraylist 线程安全
CopyOnWriteArrayList的原理和使用方法_蹦跶的小码哥-CSDN博客_copyonwritearraylist原理
CopyOnWriteArrayList:CopyOnWriteArrayList这是一个ArrayList的线程安全的变体,其原理大概可以通俗的理解为:初始化的时候只有一个容器,很常一段时间,这个容器数据、数量等没有发生变化的时候,大家(多个线程),都是读取(假设这段时间里只发生读取的操作)同一个容器中的数据,所以这样大家读到的数据都是唯一、一致、安全的,但是后来有人往里面增加了一个数据,这个时候CopyOnWriteArrayList 底层实现添加的原理是先copy出一个容器(可以简称副本),再往新的容器里添加这个新的数据,最后把新的容器的引用地址赋值给了之前那个旧的的容器地址,但是在添加这个数据的期间,其他线程如果要去读取数据,仍然是读取到旧的容器里的数据。
java自带的4种线程池 3
JAVA自带的4种线程池_luzhensmart的专栏-CSDN博客_java自带线程池
简述线程的私有资源与共享资源 2
进程和线程的区别,及线程间的公共资源和私有资源_布Q丁的博客-CSDN博客_进程和线程在拥有资源方面的区别
AtomicInteger底层实现 2
CAS
线程池优点,线程池里线程报的异常如何抓取,在线程池外捕获 2
浅谈线程池异常捕获(识别线程池使用时的一些坑)_聚沙成塔-CSDN博客_线程池execute异常捕获
列举几种阻塞队列并对比分析 2
阻塞队列和非阻塞队列_大鸡腿的博客-CSDN博客_阻塞队列和非阻塞队列的区别
wait和notify为什么定义在Object类? 2
为什么wait()和notify()属于Object类_积跬步,以致远-CSDN博客
moniter监视器的底层原理 2
synchronized底层原理—Monitor监视器_keydous的博客-CSDN博客_synchronized 监视器
线程的start方法与run方法作用 2
多线程(三)——run()方法和start()方法的区别_中都-CSDN博客_start和run方法的区别
线程什么情况下会中断 2
线程中断到底是什么_听得到微笑的博客-CSDN博客_线程中断
为什么Synchronized是重量级锁? 2
sync为啥是重量级锁?_神韵-CSDN博客_synchronized为什么是重量级锁
核心线程和非核心线程是否有区别 1
关于线程池的这 8 个问题你都能答上来吗?_Worker
简述Happen before 原则 1
简述Java内存模型的happen before原则_Peanut的博客-CSDN博客
简述wait与block及其区别 1
BLOCKED是指线程正在等待获取锁; WAITING是指线程正在等待其他线程发来的通知 (notify),收到通知后,可能会顺序向后执行(RUNNABLE) ,也可能会再次获取锁,进而被阻 塞住(BLOCKED)。
简述什么是内存屏障 1
什么是内存屏障(Memory Barrier)以及在java中的应用_MayMatrix 的博客-CSDN博客_什么是内存屏障
为什么不推荐使用Executors创建线程池? 1
为什么不推荐通过Executors直接创建线程池_那年那些事儿-CSDN博客
concurrentHashMap 的size是怎么计算的 1
ConcurrentHashmap size 1.8方法实现_programmeryu的博客-CSDN博客_concurrenthashmap size
Java线程池状态与切换 1
Java基础问题整理_xiaofeng10330111的博客-CSDN博客_java基础问题
Thread.sleep(0)的作用 1
深入理解Thread.sleep()的意义_椰子真的是只猫-CSDN博客_thread.sleep
多线程切换需要保存哪些内容 1
线程切换需要保存哪些上下文_Tianqinse的博客-CSDN博客_线程切换需要保存什么信息
Thread与Runnable的区别 1
彻底理解Runnable和Thread的区别_zhaojianting的博客-CSDN博客_runnable
如何立刻终止线程? 1
如何主动中断一个线程 1
面试官:如何终止线程?有几种方式?_Mr_wxc的博客-CSDN博客
callable和runable的区别 1
Callable和Runnable的区别_我秃了,也变强了。-CSDN博客_callable和runnable的区别
多线程如何进行参数传递? 1
java中如何给多线程中子线程传递参数?_我的成长之路!-CSDN博客
Synchronized锁类对象和this的区别 1
Synchronized(对象锁)和Static Synchronized(类锁)的区别_cs408的博客-CSDN博客_synchronized类锁和对象锁区别
什么是死锁以及排查方式 1
什么是死锁?怎么排查死锁?怎么避免死锁?_小林coding-CSDN博客_怎么排查死锁
|