《2024最新Java面试题及答案(带完整目录)》

2024最新Java面试题及答案有史以来见过的最全面试题


获取链接:《2024最新Java面试题及答案(带完整目录)》

更多技术书籍:技术书籍分享,前端、后端、大数据、AI、人工智能...

4.1.9.8. 可重入锁(递归锁) .................................................................................69
4.1.9.9. 公平锁与非公平锁 ...........................................................................................70
公平锁( Fair .................................................................................................................70
非公平锁( Nonfair .........................................................................................70
4.1.9.10.
ReadWriteLock 读写锁 ...............................................................................................70
读锁 ........................................................................................................................70
写锁 ........................................................................................................................70
4.1.9.11. 共享锁和独占锁 ......................................................................................70
独占锁 ..............................................................................................................................70
共享锁 ......................................................................................................................70
4.1.9.12. 重量级锁(Mutex Lock ............................................................................71
4.1.9.13. 轻量级锁.....................................................................................................................71
锁升级 .....................................................................................................................................71
4.1.9.14. 偏向锁................................................................................................................71
4.1.9.15. 分段锁.........................................................................................................................71
4.1.9.16. 锁优化........................................................................................................................71
减少锁持有时间 ...................................................................................................................72
减小锁粒度 ..............................................................................................................................72
锁分离 .......................................................................................................................................72
锁粗化 ..........................................................................................................................................72
锁消除 ......................................................................................................................................72
4.1.10. 线程基本方法 ..........................................................................................72
4.1.10.1.线程等待(wait .................................................................................73
4.1.10.2.
线程睡眠( sleep .............................................................................................................................73
4.1.10.3.
线程让步( yield ..............................................................................................................................73
4.1.10.4. 线程中断(interrupt .......................................................................................73
4.1.10.5.
Join 等待其他线程终止 ..............................................................................................74
4.1.10.6. 为什么要用 join() 方法? ..............................................................................74
4.1.10.7. 线程唤醒(notify ...........................................................................................74
4.1.10.8. 其他方法:...........................................................................................................74
4.1.11. 线程上下文切换 ............................................................................................................75
4.1.11.1. 进程...........................................................................................................................75
4.1.11.2. 上下文................................................................................................................75
4.1.11.3. 寄存器...................................................................................................................75
4.1.11.4. 程序计数器..........................................................................................................75
4.1.11.5.
PCB- “切换桢” .................................................................................................................................75
4.1.11.6. 上下文切换的活动: ............................................................................................76
4.1.11.7. 引起线程上下文切换的原因 ....................................................................76
4.1.12. 同步锁与死锁 ........................................................................................76
4.1.12.1. 同步锁..................................................................................................................76
4.1.12.2. 死锁.................................................................................................76
4.1.13. 线程池原理 ..................................................................................................76
4.1.13.1. 线程复用............................................................................................................76
4.1.13.2. 线程池的组成.......................................................................................76
4.1.13.3. 拒绝策略...............................................................................................................78
4.1.13.4. Java 线程池工作过程 .....................................................................................78
4.1.14. JAVA 阻塞队列原理 .................................................................................79
4.1.14.1. 阻塞队列的主要方法 .......................................................................................80
插入操作: .....................................................................................................................80
获取数据操作: ........................................................................................................81
4.1.14.2.
Java 中的阻塞队列 ..............................................................................................81
4.1.14.3. ArrayBlockingQueue(公平、非公平)........................................................82
4.1.14.4. LinkedBlockingQueue(两个独立锁提高并发) ....................................................82
4.1.14.5. PriorityBlockingQueue(compareTo 排序实现优先)............................................82
4.1.14.6. DelayQueue(缓存失效、定时任务 )............................................................82
4.1.14.7. SynchronousQueue(不存储数据、可用于传递数据)..............................................83
4.1.14.8.LinkedTransferQueue..........................................................................83
4.1.14.9. LinkedBlockingDeque........................................................................................83
4.1.15. CyclicBarrier CountDownLatch Semaphore 的法 ........................................................84
4.1.15.1. CountDownLatch(线程计数器 )....................................................................84
4.1.15.2. CyclicBarrier(回环栅栏-等待至 barrier 状态再全部同时执行)............................84
4.1.15.3. Semaphore(信号量-控制同时访问的线程个数)........................................................85
4.1.16. volatile 关键字的作用(变量可见性、禁止重排序) .........................................87
变量可见性 ....................................................................................................................87
禁止重排序 .........................................................................................................................87
sychronized 更轻量级的同步锁 ...........................................................................................87
适用场景 ............................................................................................................................87
4.1.17. 如何在两个线程之间共享数据 .......................................................................88
将数据抽象成一个类,并将数据的操作作为这个类的方法 ...............................................88
Runnable 对象作为一个类的内部类 ......................................................................89
4.1.18. ThreadLocal 作用( 线程本地存储 ........................................................90
ThreadLocalMap (线程的一个属性) ..........................................................................90
使用场景 ............................................................................................................91
4.1.19. synchronized ReentrantLock 的区别 .........................................................91
4.1.19.1. 两者的共同点:.....................................................................................91
4.1.19.2. 两者的不同点:..........................................................................................92
4.1.20. ConcurrentHashMap 并发 ..............................................................................92
4.1.20.1. 减小锁粒度...................................................................................................92
4.1.20.2. ConcurrentHashMap 分段锁..................................................................................92
ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成 ....................93
4.1.21. Java 中用到的线程调度 .............................................................................93
4.1.21.1. 抢占式调度:................................................................................................................93
4.1.21.2. 协同式调度:.................................................................................................................93
4.1.21.3. JVM 的线程调度实现(抢占式调度) .......................................................................94
4.1.21.4. 线程让出 cpu 的情况: ...................................................................................94
4.1.22. 进程调度算法 ..............................................................................................94
4.1.22.1. 优先调度算法...............................................................................................................94
4.1.22.2. 高优先权优先调度算法 ..............................................................................................95
4.1.22.3. 基于时间片的轮转调度算法 ................................................................................96
4.1.23. 什么是 CAS 比较并交换-乐观锁机制-锁自旋 ...................................................96
4.1.23.1. 概念及特性.............................................................................................................96
4.1.23.2. 原子包 java.util.concurrent.atomic(锁自旋)............................................................97
4.1.23.3. ABA 问题...................................................................................................98
4.1.24. 什么是 AQS 抽象的队列同步器 ..........................................................................98
Exclusive 独占资源 -ReentrantLock .......................................................................................99
Share 共享资源 -Semaphore/CountDownLatch .........................................................................99
同步器的实现是 ABS 核心( state 资源状态计数) .............................................................100
ReentrantReadWriteLock 实现独占和共享两种方式 ............................................100
5. JAVA 基础 ...............................................................................................................................101
5.1.1.
JAVA 异常分类及处理 ..............................................................................................................101
5.1.1.1.
概念 .........................................................................................................................101
5.1.1.2.
异常分类 ..........................................................................................................101
Error ..........................................................................................................................101
Exception RuntimeException、CheckedException .........................................................101
5.1.1.3. 异常的处理方式 ...............................................................................102
遇到问题不进行具体处理,而是继续抛给调用者 ( throw,throws .........................................102
try catch 捕获异常针对性处理方式 ..........................................................................................102
5.1.1.4. Throw 和 throws 的区别: ......................................................................102

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT帮

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值