《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 13/04/2018
Page 5 of 283
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.mzph.cn/news/824169.shtml

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

相关文章

Oracle11.2.0.1,(CVE-2012-1675)漏洞解决方案

1.进入容器停止监听 docker exec -it -u 0 oracle11g bash su - oracle lsnrctl stop listener2.找到监听配置文件位置,修改监听文件 echo $ORACLE_HOMEvi network/admin/listener.ora #在文件底部添加 SECURE_REGISTER_LISTENER (IPC) #启动监听 lsnrctl start …

基于springboot+vue+Mysql的汽车租赁系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

idea运行报错:启动命令过长

JAVA项目,运行的时候报错 Command line is too long. Shorten the command line via JAR manifest or via a classpath file and rerun老问题了,记录一下 解决办法: 1、Edit Configurations 2、点击Modify options设置,勾选S…

PlistEdit Pro for Mac激活版:强大的Plist文件编辑工具

PlistEdit Pro for Mac是一款专为Mac用户设计的强大Plist文件编辑工具。Plist文件是苹果公司开发的一种XML文件格式,用于存储应用程序的配置信息和数据。这款软件为用户提供了直观、易用的界面,使编辑和管理Plist文件变得轻松简单。 PlistEdit Pro for M…

C++设计模式|创建型 3.抽象工厂模式

在上一篇文章中介绍了工厂模式,每个具体工厂负责生产一个专门的产品,其代码扩展性很好,这篇文章将介绍抽象工厂模式。 1.为什么要使用抽象工厂模式? 既然已经有了“工厂模式”,那为什么还会有抽象工厂模式呢&#xf…

ubuntu常用方法

文本文件的创建: sudo touch ubuntu.txt move clock: sudo chmod 777 ubuntu.txt 安装chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb .sh 文件的安装 例…

生成人工智能体:人类行为的交互式模拟论文与源码架构解析(1)——场景故事介绍

生成NPC为交互应用程序创建逼真的人类行为模拟。在这项工作中,我们通过将二十五个NPC放置在一个沙盒环境中(类似于The Sims,模拟人生),展示了生成NPC的能力。用户可以观察和干预NPC的日常计划、分享新闻、建立关系以及…

web配置https

Tomcat8 配置: 1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源 2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址 如果只是加密,我感觉单向就行…

就业班 第三阶段(ansible) 2401--4.16 day2 ansible2 剧本+角色

六、Ansible playbook 简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。   通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的…

人工智能电话机器人常见的问题有哪些?

随着业务的不断拓展,电销业务量也不断攀升。公司为了控制用人成本,电销人员数量有限,而且培训上岗周期慢,这就导致成交率、销售额无法完成,电话机器人的出现,有效的解决了这些痛点,只需电销人员…

广东海洋大学成功部署(泰迪智能科技)大数据人工智能实验室建设

广东海洋大学简称广东海大,坐落于广东省湛江市,是国家海洋局与广东省人民政府共建的省属重点建设大学、广东省高水平大学重点学科建设高校、粤港澳高校联盟成员 ,入选卓越农林人才教育培养计划,是教育部本科教学水平评估优秀院校。…

odoo添加自定义网页---添加模块图标

1.新建一个模块 python odoo-bin scaffold test_web <路径> 2.我们需要修改一下几个文件 3.web.xml <?xml version"1.0" encoding"UTF-8"?> <templates id"template" xml:space"preserve"><t t-name"T…

uniapp封装websocket以及心跳检测、重连

websocket 封装 在所需文件夹下建立websocketUtils.js文件&#xff0c;封装代码如下&#xff1a; class websocketUtils {constructor(openId, time) {this.url wss://**** //ws地址 拼接一下 此处用的是openIdthis.data nullthis.isOpenSocket false //避免重复连接this.…

详解汽车交流充电桩主板的四大版本

近年来&#xff0c;在电动汽车行业快速发展背景下&#xff0c;充电桩的建设变得愈发重要&#xff0c;特别是兼容性较高、适用性较广的交流充电桩。 交流充电桩的心脏——主板的设计与功能&#xff0c;对于充电桩的性能和用户体验起着至关重要的作用。目前&#xff0c;市面上的…

OpenCV 常见数据类型

OpenCV 是一个轻量级高效的跨平台计算机视觉库&#xff0c;实现了图像处理和计算机视觉方面的多种通用算法。所谓的图像可以理解为一个数组&#xff0c;图像处理就是对数组的处理。首先&#xff0c;本文将介绍 OpenCV 中常见的数据类型&#xff0c;包括点 Point类、颜色 Scalar…

康谋技术 | 深入探讨:自动驾驶中的相机标定技术

随着自动驾驶技术的快速发展&#xff0c;多传感器的数据采集和融合可以显著提高系统的冗余度和容错性&#xff0c;进而保证决策的快速性和正确性。在项目开发迭代过程中&#xff0c;传感器标定扮演着至关重要的角色&#xff0c;它位于数据采集平台与感知融合算法之间&#xff0…

今天碰到的一点小问题(网上搜了一下理解了一下

在编程中&#xff0c;let 是一个关键字&#xff0c;主要用于声明一个块级作用域的局部变量。它是在 ECMAScript 2015&#xff08;也称为 ES6&#xff09;中引入的&#xff0c;以替代 var 关键字&#xff0c;用于解决 var 的一些作用域问题。 使用 let 声明的变量具有以下特点&…

如何使用自定义Promptbooks优化您的安全工作流程

在当今的数字化时代&#xff0c;安全工作流程的优化变得前所未有的重要。安全团队需要快速、有效地响应安全事件&#xff0c;以保护组织的数据和资产。Microsoft Copilot for Security提供了一种强大的工具——自定义Promptbooks&#xff0c;它可以帮助安全专家通过自动化和定制…

Swift高级特性之泛型

泛型是一种在编程语言中实现通用性的特性&#xff0c;它允许我们编写可以适应不同数据类型的代码。在Swift中&#xff0c;泛型可以应用于函数、类、结构体和枚举。 1.泛型函数&#xff1a;使用泛型函数可以编写一次代码&#xff0c;用于处理不同类型的数据。例如&#xff0c;我…

Linux下git维护

目录 1、安装 2、git是一个版本控制器 3、git操作 1、 #将文件放到本地仓库 2、#提交到本地 3、#远端修改同步&#xff08;需输密码&#xff09; 4、#查看提交日志 5、#删除对应文件 4、相关理解&#xff1a; 1、安装 sudo yum -y install git 2、git是一个版本控制器…