《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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/636295.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【KMP】优质模板推荐+解读

KMP – y神模板 引言:由于本人与4月20日前周五的一节数据结构课中偶然听到了老师讲kmp这个算法的概念并且发现老师讲的听不懂一点儿导致异常难受,于是花了两天左右自行弄懂了kmp算法的逻辑,并写下本文以便以后复习,并作留念。 声明…

数据结构10:堆和堆排序

文章目录 树的概念及结构树的概念树的相关概念树的表示树在实际中的应用表示文件系统的目录树结构 二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构顺序存储链式存储 二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构 堆的实现堆的插入堆的删除堆的创建向…

8.1 二叉排序树 —— C语言实现

系列文章目录 参考船说系列——数据结构与算法中的第八章内容。 二叉排序树AVL树红黑树B-树 文章目录 系列文章目录前言一、二叉排序树基础二、二叉排序树的操作2.1 插入2.2 删除 三、代码演示总结参考文献 前言 数据结构 结构定义 结构操作 结构操作是用来维护结构性质的…

spring高级篇(二)

1、Aware和InitializingBean Aware和InitializingBean都与Bean的生命周期管理相关。 Aware接口: 概念: Aware接口是Spring框架中的一个标记接口,它表示一个类能够感知到(aware of)Spring容器的存在及其特定的环境。Spring框架提供了多个Awar…

自然语言处理基础面试

文章目录 TF-IDFbag-of-wordsBert 讲道理肯定还得有Transformer,我这边先放着,以后再加吧。 TF-IDF TF(全称TermFrequency),中文含义词频,简单理解就是关键词出现在网页当中的频次。 IDF(全称…

【Pytorch】PytorchCPU版或GPU报错异常处理(10X~4090D)

Pytorch为CPU版或GPU使用报错异常处理 文章目录 Pytorch为CPU版或GPU使用报错异常处理0.检查阶段1. 在conda虚拟环境中安装了torch2.卸载cpuonly3.从tsinghua清华源安装不完善误为cpu版本4.用tsinghua清华源安装成cpu错误版本5.conda中torch/vision/cudatoolkit版本与本机cuda版…

Python基础学习之**kwargs

在Python编程中,**kwargs 是一个强大的工具,它允许我们在函数定义中接受任意数量的关键字参数。kwargs 是 "keyword arguments" 的缩写,实际上是一个字典,其中包含了传递给函数的所有关键字参数。本文将详细介绍 **kwar…

文本美学:text-image打造视觉吸引力

当我最近浏览 GitHub 时,偶然发现了一个项目,它能够将文字、图片和视频转化为文本,我觉得非常有趣。于是我就花了一些时间了解了一下,发现它的使用也非常简单方便。今天我打算和家人们分享这个发现。 项目介绍 话不多说&#xf…

用或非门构成的基本触发器

用或非门构成的基本触发器 电路组成 & 逻辑符号 注意:与用与非门构成的基本触发器相比,不仅 R 、 S R、S R、S 的几何位置不同,而且其上无反号,即高电平有效, Q Q Q 和 Q ‾ \overline{Q} Q​ 仍表示触发器的状…

最短路问题之Bellman-Ford,SPFA算法,例题 负环

Bellman-Ford算法: Bellman-Ford算法用于解决带有负权边的单源最短路径问题。其基本思想是通过不断地松弛边来逐步求解最短路径。算法的主要步骤如下: 初始化:将源点到各个顶点的距离初始化为无穷大,源点的距离初始化为0。重复更…

Linux使用Libevent库实现一个网页服务器---C语言程序

Web服务器 这一个库的实现 其他的知识都是这一个专栏里面的文章 实际使用 编译的时候需要有一个libevent库 gcc httpserv.c -o httpserv -levent实际使用的时候需要指定端口以及共享的目录 ./httpserv 80 .这一个函数会吧这一个文件夹下面的所有文件共享出去 实际的效果, 这…

关于电商独立站搭建中电商API数据采集接口的应用

搭建供应链系统时,您可能需要与电商平台进行集成,以实现订单管理、库存同步、物流跟踪等功能。以下是一些常见的电商接口,可以帮助您构建供应链系统: 1. **淘宝开放平台接口**:淘宝开放平台提供了丰富的接口&#xff…