并发编程技术之J.U.C中的并发容器——七个面试知识点

【金三银四】Java并发编程面试题(2021最新版) 目录 前言 一、基础知识 1. 为什么要使用并发编程 2. 多线程应用场景 3. 并发编程有什么缺点 4. 并发编程三个必要因素是什么? 5. Java 程序中怎么保证多线程的运行安全? 6. 并行和并发有什么区别? 7. 什么是多线程 8. 多线程的好处 9. 多线程的劣势: 10. 线程和进程区别 11. 什么是上下文切换? 12. 守护线程和用户线程有什么区别呢? 13. 如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高? 14. 什么是线程死锁 阅读详情

点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!

眼尖的朋友可能还看见了此博客页面左上角还有惊喜哟

面试题

1. Java集合框架以及J.U.C框架中列举List、Set、Map的实现?

集合框架

  • List

    • ArrayList
    • LinkedList
  • Map

    • HashMap
  • Set

    • HashSet
    • TreeSet

J.U.C框架

  • List

    • CopyOnWriteArrayList
  • Set

    • CopyOnWriteArraySet
    • ConcurrentSkipListSet
  • Map

    • CocurrentHashMap
    • ConcurrentSkipListMap

2. 如何把普通集合转化成线程安全的?

Collections#synchronized* 方法返回,此方式是采用Wrapper设计模式,方法都被synchronized进行修饰

J.U.C中提供的框架类中都提供构造方法进行转化。 如 CopyOnWriteArrayList(list)、 CopyOnWriteArraySet(set)、CocurrentHashMap(map)

3. List、Vector、CopyOnWriteArrayList的相同点和不同点?

Vector、CopyOnWriteArrayList都是List的实现类。

  • 相同点: 在读时不加锁,在写时加锁。
  • 不同点: Vector的iterator的实现是fail-fast,而CopyOnWriteArrayList的iterator是弱一致的实现,在while时不会报错

4. Collections#synchronizedList与Vector的相同点和不同点

  • 相同点: 都是加锁实现(synchronized)
  • 不同点: 一个返回List一个返回Vector,synchronizedList是一个Wrapper实现

5. Arrays#asList是线程安全的吗?有没有替代方案?

不是线程安全的,元素不可扩容但元素内容可修改

替代方案: List.of 方法(jdk9+)

6. Hashtable、HashMap、ConcurrentHashMap的区别?

  • Hashtable: key 和value都不可以为空,实现是数组+链表的方式,读写都有锁
  • HashMap: key和value都 可以为空,实现是数组,读写都没有锁
  • ConcurrentHasMap: key和value都不可以为空,实现是链表+红黑树(阈值=8时),读不加锁,写时加锁

7. ConcurrentHashMap、ConcurrentSkipListMap优点和缺点?

  • ConcurrentHashMap: 在读不加锁,写时加锁,内存占用比较小
  • ConcurrentSkipListMap: 读写都不加锁,内存占用比较大实现以空间换时间,高性能

以上是根据个人理解做了分析,如有不正确请留言讨论。

网易面试Java开发凉凉经,面试官:基础不牢,技术不够深入,无缘offer,无缘网易...... 前言 我也是经朋友介绍来的网易,先是投了简历,然后朋友通知我说可以面试了,于是我就带着忐忑的心理来到网易公司。面试的是一位帅气的光头叔叔,下午三点开始,之前准备了很多准备应付技术问答,结果基础还是太差了,无缘网易… 首先还是感谢吧,感谢网易面试官的肯定和建议。 网易一共经历了四轮面试,前三轮技术面,第四轮总监面。 岗位:我投递的是杭研所的Java开发岗位。 行程:半天的时间南京=杭州之间穿行,单程2个小时,从杭州东站=网易大厦,单程1个小时(如果能买到城站高铁动车票可以从城站触发。) 吃饭:可以去网易食 阅读详情

相关推荐

并发容器及安全共享策略(J.U.C)

并发容器及安全共享策略(J.U.C) ArrayList-CopyOnWriteArrayList HashSet、TreeSet->CopyOnWriteArraySet、ConcurrentSkipListSet HashMap、TreeMap->ConcurrentHashMap、ConcurrentSkipListMap

大军的博客 422

【高并发面试题】实现一个容器,提供add和size两个方法,写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,个数到5时,线程2给出提示并结束

【代码】【高并发面试题】实现一个容器,提供add和size两个方法,写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,个数到5时,线程2给出提示并结束。

wh2880557的博客 434

2024华为Android面试真题解析

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有高级架构技术进阶脑图、Android开发面试专题资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

2401_86352964的博客 2059

一文搞懂Java并发容器相关面试题

ConcurrentHashMap是面试的必考点,只是简单的知道是线程安全的是完全不够的,所以,让我们一起从面试问题和源码来认识下ConcurrentHashMap吧 文章目录为什么需要ConcurrentHashMap?ConcurrentHashMap 和 HashMap 两者的异同concurrentHashMap的常见问题ConcurrentHashMap的构造方法有哪些Concurren...

clonechen 1452

绕过卡巴斯基通过RPC控制lsass注入DLL

参考国外的XPN以及3gstudent大佬的文章: https://blog.csdn.net/xiangshen1990/article/details/104872566 https://gist.github.com/xpn/93f2b75bf086baf2c388b2ddd50fb5d0 原理:正常的ssp扩展(dll)可以加载到lsass进程中去,比如kerberos验证都是通...

2ed 3524

网格聚类 Grid Clustering/Grid-based Clustering

本文主要简单介绍了网格聚类的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型参数等。

JasonH2021的博客 4828

重点讲解Java多线程【有点长,错过了就永远错过了!!!】

1. 什么是线程? 1、线程是操作系统能够进⾏运算调度的最⼩单位,它被包含在进程之中,是进程中的实际运作单位,可以使⽤多线程对进⾏运算提速。 ⽐如,如果⼀个线程完成⼀个任务要100毫秒,那么⽤⼗个线程完成改任务只需10毫秒 ##2. 什么是线程安全和线程不安全? 1、线程安全 线程安全: 就是多线程访问时,采⽤了加锁机制,当⼀个线程访问该类的某个数据时,进⾏保护,其他线程不能进⾏ 访问,直到该线程读取完,其他线程才可使⽤。不会出现数据不⼀致或者数据污染。 Vector 是⽤同步⽅法来实现线程安全的, ⽽和

m0_51538362的博客 1819

Docker+vLLM内网离线部署Qwen3 流程

本文介绍了在CentOS 7系统下进行VLLM容器化部署Qwen3-32B大模型的内网离线方案。首先需准备Nvidia显卡驱动、CUDA 12.4和Docker环境。通过联网机器拉取vllm/vllm-openai镜像并导入内网服务器,同时从魔塔社区下载模型文件。部署时使用docker run命令启动容器,配置了GPU资源、内存共享、端口映射等参数,特别指定了模型路径、并行计算、内存利用率等关键参数。该方案实现了大模型在内网环境的安全高效部署,适用于需要离线运行的AI推理场景。

qq_42881308的博客 1036

面试之J、U、C

文章目录J、U、C J、U、C java.util.concurrent 并发编程中使用的工具类 线程状态: Thread.State public enum State { NEW,(新建) RUNNABLE,(准备就绪) BLOCKED,(阻塞) WAITING,(不见不散) TIMED_WAITING,(过时不候) TERMINATED;(终结) } wait、sleep 区别: 功能都是当前线程暂停。 wait放开手去睡,放开手里的锁。 sleep

const_ 350

海康Camera MVS Linux SDK二次开发封装ROS packge过程记录(c++)

https://www.hikrobotics.com/machinevision/service/download?module=0

weixin_41965898的博客 2万+

Windows server Database 2025 安装 i225/i226 网卡驱动

Windows server Database 2025 安装 i225/i226 网卡驱动 windows这比坏得很,intel消费级网卡不准在服务器系统上安装。你要说他是异构不支持?他就纯粹恶心人。 之前已经安装过一次,但是今天database预览版一更新,又给我把网卡驱动杀了,气死,写一篇教程。 到这里就完成了,总之还是想辱骂windows,提供便捷的同时又人为制造困难,多少有点(隔壁linux内核直接自带全家桶了就一省心) 并且近年Intel的新U安装显卡驱动和普通声卡驱动都不会出声

低温热源的博客 1万+

Java并发编程与高并发解决方案(精选)

Java并发编程与高并发解决方案 一、课程准备 1.1 课程导学 本课程主要是围绕并发编程和高并发解决方案两个核心来进行讲解; 希望这门课程能够带领大家攻克并发编程与高并发的难题; 课程特点: 大量的图示及代码演示; 全面覆盖并发知识点,建立完整的知识体系,主要有:线程安全、线程封闭、线程调度、同步容器、并发容器、AQS、J.U.C等等; 高并发的解决方案与思路主要有:扩容、缓存、队列、拆分、服务降级与熔断、数据库切库、分库分表等等,通过以上帮助你构建完整的并发与高并发知识体系。 贴近面试,提

暗余的博客 1768

当GO.db安装失败时,生物信息学新手应该知道的5个底层逻辑

本文为生物信息学新手提供了解决GO.db安装失败的5个关键底层逻辑,包括网络连接与镜像源设置、版本兼容性检查、依赖关系管理、SQLite存储机制理解以及调试技巧。特别针对Bioconductor的GO.db包安装问题,详细介绍了如何通过切换国内镜像、管理版本冲突和解决依赖问题来成功安装,帮助用户高效克服常见安装障碍。

weixin_29062823的博客 407

【92期】面试官:你说你精通Java并发,那给我讲讲J.U.C吧

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 13分钟。来自:https://www.zybuluo.com/adamhand/note/1313016J.U....

良月柒 676

Hcaptcha验证码破解深度解析:从环境检测到n值算法的攻防实战

本文深入解析Hcaptcha验证码的攻防技术,从环境检测到n值算法的全面突破策略。详细介绍了浏览器指纹模拟、图像识别工程化解决方案及协议层逆向分析,为安全研究人员提供高效破解Hcaptcha的实战指南。

weixin_42563415的博客 375

SAP-ABAP:FI财务会计模块常用BAPI及核心用途实例说明

SAP FI模块的BAPI覆盖了从主数据管理、凭证过账到财务关账的全流程操作,是系统集成与自动化的重要工具。实际应用中需结合业务场景选择合适的BAPI,并严格遵循事务控制与校验规则。如需扩展功能,可通过BAdI或用户出口增强标准逻辑。

baidu_35680696的博客 1601

从一道面试题进入Java并发新机制——J.U.C

它是 Java java.util.concurrent 包的缩写,从包的名称就可以看出,它应该主要提供一些 线程同步 的类。这个包下面的类提供了多种实现线程同步的方式,还有诸如 Executor 、Callable 、Future 、ExecutorService 等耳熟能详的接口。

2401_87878486的博客 951

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

92面试常问:你说你精通Java并发,那给我讲讲J.U.C吧

J.U.C J.U.C即java.util.concurrent包,为我们提供了很多高性能的并发类,可以说是java并发的核心。 J.U.C和CAS和Unsafe和AQS Concurrent包下所有类底层都是依靠CAS操作来实现,而sun.misc.Unsafe为我们提供了一系列的CAS操作。 AQS框架是J.U.C中实现锁及同步机制的基础,其底层是通过调用 LockSupport .unpark()和 LockSupport .park()实现线程的阻塞和唤醒。 J.U.C框架 J...

AI乔治 467

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

并发复习:面试/笔试之多线程面试问题集锦

找工作告一段落,期间经历了很多事情,也思考了许多问题,最后也收获了一些沉甸甸的东西 —— 成长和一些来自阿里、百度、京东(sp)、华为等厂的Offer。好在一切又回到正轨,接下来要好好总结一番才不枉这段经历,遂将此过程中笔者的一些笔试/面试心得、干货发表出来,与众共享之。本文对面试/笔试过程中经常会被问到的一些关于并发编程的问题进行了梳理和总结,包括线程池、并发控制锁、并发容器和队列同步器等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。

无休居士的博客 976

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java并发编程解决方案,Java并发编程与高并发解决方案

第1章 课程准备本章首先从课程重点、特点、适合人群及学习收获几个方面对课程进行整体的介绍,然后会从一个实际的计数场景实现开始,给大家展示多线程并发时的线程不安全问题,让大家能够初体验到并发编程,之后会讲解并发和高并发的概念,并通过对比让大家明白到底什么是并发和高并发,最后会给出课程涉及到的知识技能,为后续的学习做好...第2章 并发基础本章主要讲解并发学习必须理解的一些基本概念,主要包括CPU多级...

weixin_34430692的博客 193

Java并发编程入门与高并发面试

第1章 课程准备(入门课程)课程目标:Java并发编程入门,适合没有并发编程经验的同学,本章首先从课程重点、特点、适合人群及学习收获几个方面对课程进行整体的介绍,然后会从一个实际的计数场景实现开始,给大家展示多线程并发时的线程不安全问题,让大家能够初体验到并发编程,之后会讲解并发和高并发的概念,并通过对比让大家明白到底什么是并发和...1-1 课前必读(不看会错过一个亿)1-2 课程导学...

weixin_30377461的博客 176

java 高并发mqtt服务器_Java并发编程入门与高并发面试笔记

从6月22起,利用空闲的几天时间,重新学习了下慕课网上Jimin的《Java并发编程入门与高并发面试》,之前的课程名称应该是《Java并发编程与高并发解决方案》。顺便记录点笔记,如下:第19章 课程总结20200629第18章 高并发之高可用手段介绍 202006291.任务调度系统分布式:elastic-job + zookeeper2.主备切换:apache curator + zookeep...

weixin_35648005的博客 815

java 并发视频_Java并发编程与高并发解决方案视频教程

课程简介:【并发编程与高并发难题我们一起攻克】本课程将结合大量图示及代码演示,让你更容易, 更系统的掌握多线程并发编程(线程安全,线程调度,线程封闭,同步容器等)与高并发处理思路与手段(扩容,缓存,队列,拆分等)相关知识和经验。帮助你构建完整的并发与高并发知识体系,胜任实际开发中并发与高并发问题的处理,倍增高薪面试成功率!课程目录:第1章 课程准备(入门课程)课程目标:Java并发编程入门,适合没...

weixin_31440211的博客 349

阿里内部高并发性能优化实操手册曝光!简直YYDS

学习本文之前,先问大家几个问题:并发编程对于很多人说都是比较难的,总是出现一些莫名其妙的bug,让我们很是苦恼,那么他到底是难在哪里呢?很多人对并发的学习,主要是通过看视频和博客进行的,知识体系不够系统,为了更好地应对接下来的工作,谨以从并发编程开始,接入高并发知识来系统地学习并发编程的知识点。(PS:本文的学习意义并不局限于并发编程,学会之后你可以灵活运用到当前所处的工作中)今天就从并发编程开始给大家介绍,再进而切入高并发设计,希望本文能够得到各位读者朋友们的喜欢!

m0_71777195的博客 120

并发容器及安全共享策略总结

并发容器及安全共享策略总结 J.U.C指的java.util.concurrent包 并发容器 - CopyOnWriteArrayList CopyOnWriteArrayList 相比ArrayList 是线程安全的,根据名称知道:写操作时复制; 写操作时拷贝一份,在新的数组上进行写操作,操作完之后,再将原来的数组指向新的数组。 (CopyOnWriteArrayList整个add操作都是在...

坚定目标,超越自我 419

Java程序员面试必备的知识点,系列篇

线程 线程的启动 实现Runnab1e接口 继承Thread类 实现Callable接口 线程的状态 线程的方法 线程的优先级 守护线程 未捕获异常处理器 并发编程的问题 线程引入开销:上下文切换与内存同步 线程安全性(原子性+可见性) 死锁 线程间通信/线程同步 工具使用 synchronized Lock volatile Atomic Lock使用 深入 可重入锁 ReentrantLock Condition与wait&notify区别 await&signal

m0_57081438的博客 192
上一篇: 年薪90W,阿里Java高薪架构师成长背后血泪史
下一篇: 阿里架构师分享Java性能调优攻略,七步搞定!
Java_No01
博客等级 码龄7年 17粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值