hashmap中16这个数字是干嘛的,只知道一个红黑树个数小于6会退化为链表
点赞 1

相关推荐

数据库平台开发实习生 - 技术一面(算法太烂了,建个链表建半天,面试官等不住了,居然还用了c++语法,太招笑了)面试问题速览1. 请做个自我介绍。2. 能讲一下你实习项目中,分布式锁这块你是怎么实现的吗?3. 讲一下你自学的 Raft 一致性算法。4. (追问)讲一下 Raft 的日志复制这块。5. 你的 AI 项目里,RAG 是怎么做的?向量数据库是怎么选型的?6. 讲一下 Function Calling 的概念和应用。7. 现场算法编程:删除链表的倒数第 N 个节点。(LeetCode 19)我的回答策略与分析【针对问题】分布式锁的实现原理【回答策略】:我采用了“方案演进式”的回答方法。1. 起点:从最基础的 SETNX + EXPIRE 方案讲起,这是最容易想到的起点。2. 主动暴露问题:立刻指出该方案的缺陷,即两条命令非原子性,在极端情况下会导致死锁。这能体现出你思考的严谨性。3. 方案升级:提出使用 Redis 2.6.12 之后提供的原子性命令 SET key value NX PX milliseconds 来解决上述问题。4. 再次深入:继续主动挖掘该方案的潜在问题,即“锁过期了但业务没执行完怎么办?”,引出更高级的“锁续期”概念。5. 最终方案:最后点出 Redisson 等成熟框架是如何通过“看门狗(Watchdog)”机制来自动续期,保证业务执行期间锁的有效性。【回答分析】:这个回答策略的效果非常好。它向面试官展示的不仅仅是你“知道”分布式锁,更是你“理解”它背后的设计权衡和技术演进逻辑。这种结构化的、由浅入深的讲解方式,能清晰地展现出你的技术深度和体系化的知识结构,是面试中一个巨大的加分项。【针对问题】Raft 共识算法的核心原理【回答策略】:我使用了“框架先行,细节填充”的策略来解释这个复杂的理论。1. 理论破题:先用一句话的 CAP 理论来给 Raft 定位,表明它是一个保证一致性(C)和分区容错性(P)的系统,这能快速和面试官对齐上下文。2. 结构化拆解:直接引用 Raft 论文的核心思想,即“将复杂问题拆解为三个子问题:领导者选举、日志复制、安全性”,为后续的讲解搭建清晰的框架。3. 分点阐述:逐一讲解“领导者选举”(Follower -> Candidate -> Leader 的状态转换、心跳、任期、投票过半)和“日志复制”(日志强制覆盖、复制到大多数节点才 commit)的核心机制。【回答分析】:对于复杂的理论问题,最忌讳的是一上来就陷入细节。先搭框架再填充细节,能让你的讲解非常有条理,也方便面试官跟上你的思路。能够清晰阐述自学的底层理论,是展现学习能力和技术热情的绝佳机会。【针对问题】现场算法编程(复盘与反思)【回答策略】:我的第一反应是采用最稳妥的“两次遍历”解法:第一次遍历计算链表总长度 L,从而确定要删除的是正数第 L-n+1 个节点;第二次遍历找到该节点的前一个节点,执行删除操作。【回答分析】:这个思路本身是完全正确的,能够解决问题。但在这次面试中,我最大的不足暴露在了编码的熟练度上。1. “辅助代码”耗时过长:我在“如何根据输入数组构建一个测试用的链表”这个环节卡了比较久,占用了宝贵的思考和编码时间。2. 语法细节混淆:在紧张状态下,写出了 int* 这种非 Java 语法,说明对语言细节的肌肉记忆不够牢固。3. 核心反思:这提醒我,平时刷题不能只停留在 LeetCode 网页上写核心函数。一定要在本地 IDE 里,进行从零开始的、包含数据结构定义和测试用例的“实战模拟”,才能真正提升现场编码的速度和准确率。对于“快慢指针”这种更优解法,也应当做到熟练掌握。
查看7道真题和解析
点赞 评论 收藏
分享
08-15 16:38
门头沟学院 Java
1.我们常说Java可以实现跨平台,这个平台指的是是什么2.Java如何实现跨平台的?3.怎么理解多态:4.person和father类,都有eat方法。person p =  new father();p.eat()是调用的子类的eat还是父类的eat方法?5.父类没有只有子类有,此时调用时什么结果?6.为什么要有包装类?7.说说对线程安全的理解8.说一下并发和并行的理解9.知道什么是死锁么?10.什么是事务?事务的隔离级别什么是脏读,是怎么产生的11.什么是回表?怎样减少回表的次数?12.怎么实现分页和底层的原理13.说一下对Spring的理解14.讲一下Bean的生命周期还被问到有没有自己实现过对一些逻辑的装配和生命周期的拓展,实现aware接口,beanpostprocessor接口之类的15.说一下设计模式的理解吟唱了一遍单例模式的八股和写法,被反问:其它设计模式单例模式,策略模式一点不了解。也没有具体写到项目里面用过?16.说一下分布式锁的使用场景说研究了一下它的底层原理和使用方案看熟悉过后写到项目里面的。被怀疑:那你自己在模拟的时候就是纯代码模拟,没有没有业务,就是没有项目中参与业务。分布式锁,肯定用到了多个服务,负载均衡怎么配置的?17.看你写了线程池异步处理下单流程jmeter压测qps提升了30%,最终的QPS提升到了多少呢?最终要写库吗?相当于生成订单,写库,这一套流程下来,模拟了多长时间的并发测试?实操的真实性,有没有遇到什么困难?压测的数据规模?具体是那个环节做了异步处理最后QPS提升了30%具体讲一下?数据库连接数你调的多大?(这部分被问的汗流浃背了)18.说一下做的项目里面项目里面实打实考虑过,攻坚过的技术?(给我放水了)看了篇双token解决登录状态刷新的文章写上去了。这会儿说是自己设置的。然后被指教了,脱离业务谈技术,公司里面不会这么干。19.看你写了防超卖问题,具体怎么写的,QPS设置的多大并发扛住的超卖,自己测试过么?20.微服务分布式和微服务有什么区别?什么是分布式事务?seta用过没有?(没有做过微服务的项目,那springcloud那一套也不是很了解了哦?)内心:不是我简历上没写微服务都要问嘛,拷打实习:1.(其中编了个缓存高频数据,过期时间拼接随机时间避免大量数据同时失效写到简历上面了。)这点被拷打了。过期时间设置的多久?一般多久来对数据进行一次刷新?数据量有多大?内心:不知道数据量多少合适,随便说了个有几千条数据。被怀疑:几千条数据你放redis里面?是不是真实做的哦?回答到是包装的了(此时红温了,想快点结束)2.然后问我:那你什么是真的,给我讲一下。简历上我是拿朋友的实习过程问了一下写上去的,回答说格外没有什么问题吧,顶多是一些数据类型匹配不上,参数接收接收不了之类的。又被回答:我不信你三个多月实习一点问题都没有遇到过。数学逻辑题:1.有一个村庄第一个题哈有一个村庄,这个村庄有一个习俗,生男孩儿喜欢生男孩,但是生不到男孩就为止就不生了,问你若干年以后就可以很多,很多年就相当于趋于一个平衡状态的时候,就是趋于一个最终状态的时候,这个男子男女村子的男女比例是多少。2.一个盒子里面有3个白球和2个黑球,有放回的抽取两次抽到不同色的概率是多少?3.有八个金属球,其中有七个各个属性都相同,只有一个的重量更重一点,其它属性也相同,问最少需要几次称量找出这个球。再次被问到大学有没有实打实在程序上面干了什么事情,写过哪些代码?萎了,不知道怎么说了。总不能直接说是点评和外卖吧,包装上面的亮点结果没答出来,没想到会问这么细。回答道做过serverlet和jsp的项目。给面试官逗笑了。其它:你在大学期间干的最令自己自豪的事情是什么?能不能说一下对自己的评价?说说未来的职业规划?怎么看待加班这个问题?总结:面试官体验超级好,把我的雷点全给我整出来了,压测之类的还是得自己去做一遍才行。不是说亚信点击就送么,项目部分咋问我这么狠。不包装又怕简历投不进去,包装了这下雷点还给我整出来了。结果朋友直接写的外卖点评常见项目描述和技术点还约到面oc了。
下水道鼠鼠ne:我nm,这还是我印象中的点击就送的大外包亚信吗
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务