Hashtable程序员面试五分钟被请出来了

基于RK3588与Gstreamer的端侧实时视频流AI推理系统构建 本文详细介绍了基于RK3588芯片与Gstreamer框架构建端侧实时视频流AI推理系统的完整方案。通过硬件选型、环境配置、OpenCV编译优化、视频流处理实战及模型部署等关键环节的深入解析,展示了如何利用RK3588的6TOPS NPU算力与Gstreamer的低延迟特性,实现工业质检、智能交通等场景下的高效边缘计算。特别针对RTSP推拉流优化、RKNN模型转换等核心技术难点提供了实用解决方案。 阅读详情

在这里插入图片描述
你们可能会想,栈长这么菜的吗?5分钟都坚持不了?
本文说起来会有点尴尬,毕竟这是栈长我曾经经历过的故事。
那时候的栈长还真菜,每天写着 if/ for 及一些简单的业务逻辑代码,虽工作有些日子了,但技术水平还停留在刚毕业的起步阶段。
记得,那是一个周末,栈长去某知名互联网公司面试,好像不到五分钟,我就被面试官亲切地赶出来了,当时我那个尴尬,内心深受打击。
为什么会被赶出来?这道题我记得很清楚,我不确定是不是因为这道题,但却是这道题结束了整个面试,大概的经过是这样:
面试官:HashMap 和 Hashtable 的区别是什么?
栈长:……(这个我答上来了,栈长整理了下,大家可以参考这篇文章:HashMap 和 Hashtable 的 6 个区别。)
面试官:那既然 Hashtable
是线程安全的,又性能不好,那你还知道别的替代品吗? 栈长:……(没答上来)
面试官:好吧,那我们今天先聊到这里吧(起身送我走)……
栈长:好的,谢谢。(尴尬离场)
现在想起来都觉得尴尬。
现在竞争这么大,要求那么高,只会 Hashtable 的程序员真不能立足了,至少你得说得出 SynchronizedMap,虽然它的性能和 Hashtable 一样差,使用了全局对象锁来保证线程安全性,但至少你不只是会 Hashtable。
其实上面的问题,最佳答案是:ConcurrentHashMap,说完这个,有很大概率面试官又会连番问它的实现原理,以及它在 JDK 各个版本中的不同。 ConcurrentHashMap 是 JDK 1.5 添加的新集合,用来保证线程安全性,提升 Map 集合的并发效率。ConcurrentHashMap 使用了 Segment 的概念,默认有 16 个 Segment,Segment 里面依然还是数组 + 链表的数据结构,相当于给 HashMap 分桶处理了。因每次只会锁住其中一个 Segment,所以性能非常好。
然而,有意思的是,随着 JDK 1.8 中对 HashMap 的改进,同时又对 ConcurrentHashMap 进行了改进,抛弃了 Segment + 数组 + 单向链表 的设计,改为了和 HashMap 同样的 数组 + 单向链表 + 红黑树 的数据结构。
同时,ConcurrentHashMap 使用了 CAS 算法 + Synchronized 来保证集合的线程安全性,ConcurrentHashMap 相当于一个性能安全的 HashMap。 ConcurrentHashMap 源码相当复杂,后面栈长会出一篇专门分析 HashMap 和 ConcurrentHashMap 源码和原理的文章。
不过话又说回来,当初栈长面试 5 分钟就被送出来了,其实很正常,谁叫我当时只会 Hashtable 呢!就像我现在面试人一样,如果中高级面试者只会 Hashtable 讲不出其他更多的,我也一样也会把他送出去,初级的还可以理解。
现在很多中高级程序员,虽然年限已经达到三年或者五年以上,但实际对多线程知识了解甚少,还停留在如何实现和使用多线程的水平。这种其实和初级程序员没什么区别,竞争力明显不足,所以怎么能要得到比初级程序员更高的价格呢?天天写业务代码,又如何成为大牛呢?
所以,给 Java 程序员的一些建议,特别是中高级程序员,一定要把 Java 核心技术学好,如多线程、集合的应用、数据结构、原理等,这是中高级面试必问的。
不要年纪上去了,对于底层知识却不知道一二,不然随着年纪的不断增长,被淘汰的风险就越大,这样对于一个靠编码吃饭的程序来说,真的很可怕! 如果你被我说中了,或许考虑换一个环境?
最近栈长我会陆续分享一些个人的职场经验,踩坑经历,以及成长感悟,希望能给一些职场新猿带来帮助。
文章来自:https://www.itjmd.com/news/show-4299.html

手把手教你设计T型和Π型衰减器:从分贝计算到电阻选型全攻略 本文提供了一份T型和Π型衰减器的详细设计指南,涵盖从分贝计算到电阻选型的全过程。文章以50欧姆系统为例,通过公式推导和实例演示,手把手教你计算两种经典拓扑的电阻值,并深入探讨了电阻选型、误差控制及高频应用等关键实践技巧,帮助工程师和爱好者精准实现信号衰减与阻抗匹配。 阅读详情

相关推荐

JavaScript 书签脚本实战:腾讯/优酷/爱奇艺等5大视频站m3u8链接一键提取

本文详细介绍了如何使用JavaScript书签脚本一键提取腾讯视频、优酷、爱奇艺等五大视频平台的m3u8流媒体链接。通过分析播放器内部对象结构,开发者可以高效获取视频源文件,避免录屏画质损失。文章包含各平台适配方案、实战增强功能开发及企业级解决方案设计,帮助用户快速掌握这一实用技术。

weixin_27945229的博客 613

HashMap的实现原理

1. HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 从上图中可以看出,HashMap底层就是一个数组结构,数组中的每一...

m0_62463568的博客 4588

SO逆向入门实战教程一:OASIS

文章目录一、前言二、准备三、Unidbg模拟执行四、ExAndroidNativeEmu 模拟执行五、算法分析六、尾声 一、前言 这是SO逆向入门实战教程的第一篇,总共会有十三篇,十三个实战。有以下几个注意点: 主打入门级的实战,适合有一定基础但缺少实战的朋友(了解JNI,也上过一些Native层逆向的课,但感觉实战匮乏,想要壮壮胆,入入门)。 侧重新工具、新思路、新方法的使用,算法分析的常见路子是Frida Hook + IDA ,在本系列中,会淡化Frida 的作用,采用Unidbg Hook + .

lilac的博客 2万+

HashMap面试,看这一篇就够了

历史热门文章: 七种方式教你在SpringBoot初始化时搞点事情 Java序列化的这三个坑千万要小心 可以和面试官聊半个小时的volatile原理 Java中七个潜在的内存泄露风险,你知道几个? JDK 16新特性一览 啥?用了并行流还更慢了 InnoDB自增原理都搞不清楚,还怎么CRUD? 前言 在一场面试中最能打动面试官的其实是细节,候选人对细节的了解程度决定了留给面试官的印象到底是“基础扎实”还是“基础薄弱”,如果候选人能够举一反三主动阐述自己对一些技术细节的理解和总结,那无疑是面试过程中.

DD_Dddd的博客 2万+

Python全栈入门到实战【基础篇 05】核心基础:Python的2种运行模式(交互式+命令行式)

Python代码运行模式详解:交互式与命令行式对比 摘要: Python提供两种核心运行模式:交互式(REPL)和命令行式(脚本式)。交互式模式适合快速测试语法,即时反馈结果,通过终端输入python启动,特点是无需保存、临时执行,适合验证小段代码逻辑。命令行式模式需将代码保存为.py文件后运行,适合开发完整程序,可重复执行和修改。两种模式各有优势:交互式便于学习调试,命令行式适合实际开发。掌握两种模式的使用场景和切换方法,是Python入门的关键技能,能显著提升学习效率。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4563

RK3568平台开发系列讲解(中断及异常篇)中断下半部:中断线程化

以前用 work 来线程化地处理中断,一个 worker 线程只能由一个 CPU 执行, 多个中断的 work 都由同一个 worker 线程来处理,在单 CPU 系统中也只能忍着 了。少数中断不能线程化,典型的例子是时钟中断,有些流氓进程不主动让出处理器,内核只能依靠周期性的时钟中断夺回处理器的控制权,时钟中断是调度器的脉搏。中断处理线程是优先级为50、调度策略是SCHED_FIFO的实时内核线程,名称是“irq/”后面跟着Linux中断号,线程处理函数是。,说明是线程化的中断,那么唤醒中断处理线程。

内核笔记 435

Java 容器源码分析之Map-Set-List

HashMap 的实现原理 HashMap 概述 HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 Hash...

aikuangchou2298的博客 530

太空安全卫士:基于YOLOv5的空间态势感知系统(实现轨道碰撞预警与太空环境保护)

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_71589036的博客 90

HashMap实现原理详解

参考自https://blog.youkuaiyun.com/mbshqqb/article/details/79799009 了解HashMap前,先了解一下Java集合。 一、Java集合 Java集合是一个用来存储对象的容器,Java集合类存放于 java.util 包中。 集合有以下特征: 1、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer ...

liu835704070的博客 850

诊断测试工具CANoe.DiVa从入门到精通系列——开门见山

### 工具主要用于测试ECU的诊断功能。关于自动化诊断测试可以分为如下内容: ### -> 1、根据诊断需求规范进行cdd文件的编辑(现阶段主要是诊断问卷调查表); ### -> 2、新建Diva工程,导入对应的诊断数据库文件生成测试用例; ### -> 3、新建CANoe工程,导入CANoe.DiVa生成的Diva工程; ### -> 4、根据测试报告进行错误处理。

Soly_kun的博客 3555

UG\NX二次开发 使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征

使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征。

王牌飞行员_里海的博客 850

程序员周末阿里面试,5分钟就被一道题秒杀:HashMap与Hashtable

你们可能会想,我这么菜的吗?5分钟都坚持不了? 本文说起来会有点尴尬,毕竟这是我曾经经历过的故事 那时候的我还真菜,每天写着 if/ for 及一些简单的业务逻辑代码,虽工作有些日子了,但技术水平还停留在刚毕业的起步阶段。 记得,那是一个周末,我去某知名互联网公司面试,好像不到五分钟,我就被面试官亲切地赶出来了,当时我那个尴尬,内心深受打击。尴尬后的感悟 现在想起来都觉得尴尬。 现在竞争这么大,要求那么高,只会 Hashtable 的程序员真不能立足了,至少你得说得出 SynchronizedMap,虽然它

weixin_51702416的博客 235

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

周末去面试,进去 5 分钟就出来了…

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34381687的博客 88

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java面试突击:高频考点深度解析与实战策略

在Java技术生态中,掌握核心原理是构建高效、稳定应用系统的基石。从数据结构与算法到并发编程,再到JVM内存管理与垃圾回收机制,理解这些底层原理能帮助开发者编写高性能、线程安全的代码。例如,深入理解HashMap的数组+链表/红黑树结构、扩容机制及线程安全问题,不仅是应对面试的关键,更是解决实际高并发场景下数据一致性与性能瓶颈的必备知识。同样,对JVM内存模型、垃圾回收器(如G1、ZGC)及MySQL索引(B+树)、事务隔离级别(如可重复读下的MVCC)的掌握,直接关系到线上系统的稳定性和扩展性。这些技术广

weixin_34320159的博客 383

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HashMap实现原理深入理解(精华)

HashMap详解 哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中HashMap的实现原理进行讲解,并对JDK7的HashMap源码进行分析。 一、什么是哈希表 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能 数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一

qq_43658155的博客 3536

HashMap的实现原理详解(看这篇就够了)

HashMap底层结构?基于Map接口的实现,数组+链表的结构,JDK 1.8后加入了红黑树,链表长度>8变红黑树,<6变链表两个对象的hashcode相同会发生什么?Hash冲突,HashMap通过链表来解决hash冲突HashMap 中 equals() 和 hashCode() 有什么作用?HashMap 的添加、获取时需要通过 key 的 hashCode() 进行 hash(),然后计算下标 ( n-1 & hash),从而获得要找的同的位置。

bjmsb79的博客 2431

HashMap实现原理分析

之前转载过一篇HashMap相关分析文章,快速链接:HashMap实现原理分析 既然有前辈已经将源码分析总结了出来,我们在继续学习研究源码实现的时候不妨借鉴借鉴前人的总结与经验~ 本文转自:https://blog.youkuaiyun.com/hefenglian/article/details/79763634 深度好文,先转载过来,慢慢研究。 目录 一、底层数据结构 二、HashMap...

冷血之心的博客 7005

HashMap实现原理

检索键值对:当调用get()方法检索键值对时,首先会根据键的哈希值计算出哈希码,然后通过哈希码和数组长度取模计算出在数组中的索引位置。存储键值对:当调用put()方法存储键值对时,首先会根据键的哈希值计算出哈希码,然后再通过哈希码和数组长度取模计算出在数组中的索引位置。扩容后,新的容量为原容量的两倍,并且需要重新计算每个键值对的哈希码和索引位置,将键值对重新存储到新的数组中。的获取操作通过计算键的哈希值,找到对应的桶,然后在桶中遍历链表或红黑树以找到匹配的键。时,会触发扩容操作,默认扩容为原来的 2 倍。

Flying_Fish_roe的博客 1344

面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别

下面直接来干货,先说这三个Map的区别: HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.length HashMap 底层数组+链表实现,可以存储null键和null值,线

zhelong19830726的博客 774

HashMap底层实现原理?着这一篇就够了

HashMap底层实现原理?着这一篇就够了

weixin_42113716的博客 7623

轻松理解HashMap的底层原理,让它不再是你的绊脚石!

HashMap底层原理: 1.首先,我们先回顾一下HashSet,看看它和HashMap的基本区别: HashMap HashSet 实现了Map接口 实现了Set接口 存储键值对 存储对象 调用Put()向Map中添加元素 调用add()方法向Set中添加元素 HashMap使用键(Key)计算Hashcode HashSet使用成员对象计算hashcode值,对于两个对象的hashcode值可能相同,所以用equals()方法判断对象的相等性,如果.

源于热爱的博客 1675

面试官再问你 HashMap 底层原理,就把这篇文章甩给他看

前言 HashMap 源码和底层原理在现在面试中是必问的。因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合。文章较长,介绍了很多原理性的问题,希望对你有所帮助~ 目录 本篇文章主要包括以下内容: HashMap 的存储结构 常用变量说明,如加载因子等 HashMap 的四个构造函数 tableSizeFor()方法及作用 put()方法详解 hash()方...

烟雨星空的博客 5万+

java中hashmap的实现原理是什么?

HashMap 的实现原理 一、HashMap 概述 HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得

gulanga5的博客 4975
上一篇: Java开发中内存模型详细解析
下一篇: 大数据Spark优化读取Hbase--region 提高并行数过程详细解析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值