某系企业真的很不尊重面试者

面试官一半时间在打电话而且面完秒挂是什么意思?😅
虽然手撕只撕出来1.5道(第一题思路对没调完),是我能力不行达不到要求,但是一半面试时间都在打电话,然后让我对着屏幕发呆吗?😅😅😅

面经补充:常规面经
手撕:
1.非递减数组求一个值的开始位置与结束位置
2.一个链表按某个值划分为两部分,一段大于该值一段小于该值
面试:
hashmap和concurrenthashmap区别
为什么concurrenthashmap的key不能为null
concurrenthashmap实现原理
votatile和synchronized原理与区别
jmm内存模型
线程创建方式
线程池参数和原理
acid特性
事务隔离级别与实现
mvcc原理
快照读和当前读区别
b+树好处
京东实习--介绍一下限流改进方法
介绍一下常见限流策略
此时差不多30分钟,然后他就打电话去了😅😅
#远程面试的尴尬瞬间# #牛客AI配图神器# #发面经攒人品# #如何判断面试是否凉了#
全部评论
同学,瞅瞅我司,医疗独角兽, 因为新业务扩展,11月校招HC暴增! 我的主页最新动态,绿灯直达,免笔试~
1 回复 分享
发布于 11-01 09:59 广东
垃圾公司,避雷
点赞 回复 分享
发布于 11-01 10:51 北京
一说某系,那两个字呼之欲出
点赞 回复 分享
发布于 11-01 09:51 江苏

相关推荐

京东面经(总共30分钟,项目15分钟,八股15分钟)1.1-2分钟自我介绍项目一(rag)1)请你讲一下文档解析与向量检索的部分2)文档解析这一块,不能解析扫描件的pdf文档类型,你后续有什么方法去解决吗(我答的利用MCP去调用WPS的文档解析服务,面试官补充说可以利用OCR工具去实现3)ES向量检索召回率很低怎么办,(答了利用faiss去优化向量检索4)用的什么向量模型,维度是多少,有去横向对比过吗5)用到了什么大模型,这个大模型的优缺点是什么,横向对比过吗6)平时会去用ai辅助编程吗7)redis在项目中主要的用途有哪些8)在利用security+jwt这样的鉴权方法,有什么更好的方法去优化吗(面试官补充了SSO,OAuth,可以实现第三方登录,单点登录)9)讲一下你实现的security+jwt这样的过滤器流程,怎么进行权限控制的10)为什么要用websocket去进行交互,优缺点在哪,相比于http的区别11)谈一下你对ai的看法,了解哪些ai的技术栈,框架,未来的发展方向有想法吗12)有什么想特别学习的技术吗项目二1)讲一下利用Redis缓存+定时异步将热点数据的并发点赞、评论、和收藏回写到数据库2)你刚刚说定时用到了@schedule注解,那如果是6台服务器去回写,怎么保证一致性,你会怎么做3)雪花算法的核心概念讲一下,它的缺点在哪,它在部分场景下会失效,有什么更好的ID生成方法吗4)两个项目的消息队列用的是什么,为什么要用rabbitMQ和Kafka4.八股1)反射的缺点是什么2)注解的底层原理是什么3)讲一下JVM的运行时内存区域,各自的作用是什么,static修饰的成员变量放在哪4)讲一下类加载机制5)项目中有用到并发编程的地方吗6)讲一下线程安全类,说一两个,他们在项目中的使用场景7)concurrHashmap和hashmap的区别,在项目中有用到吗8)semaphore,countdownlatch,cyclicBarrier了解吗9)MySQL的锁机制,索引类型,为什么要用B+树10)redis的持久化过程11)怎么自定义Starter的,详细过程讲一下12)有读过框架的底层代码吗,mybatis,问了xml配置文件中,从前端到dao层的流程,xml配置文件中的sql语句是如何运行的13)项目管理除了maven,还有用到其它的吗
双非本科求职如何逆袭
点赞 评论 收藏
分享
10-25 21:11
已编辑
门头沟学院 Java
总体流程大概 45min 左右,已收感谢信,总的来说是因为自己这两个礼拜没怎么准备八股,算法没撕出来。面经如下:1.你自己做的项目有锁的释放是怎么实现的?什么比较亮眼的功能,可以拿出来说一下,方案是什么样的?2.锁的释放是怎么实现的?3.你的库存防超卖是通过 Redis 所做的吗?还有什么其他技术吗?java 八股:1.比较常用的 HashMap 是一个什么数据结构?哈希冲突的情况下,除了拉链法,还有什么其他方法?2.红黑树是什么样的结构?为什么需要转成红黑树?3.HashMap 在多线程环境下是不是一个线程安全的容器?为什么说 HashMap 它不是一个线程安全?会产生什么问题?4.ConcurrentHashMap 是怎么解决 HashMap 的线程安全问题的?在 ConcurrentHashMap 里面,用 CAS 去上锁,如果说 CAS 失败的话会怎么办?ConcurrentHashMap 的扩容机制了解吗?5.比较 synchronized 和 reentrylock 的异同点。volatile 的那个变量(state)的作用是什么。什么状态下是表示加锁成功了,在 AQS 里面?这个 tryAcquire 方法的整体流程是什么样子的?介绍一下 volatile 关键字有什么用吗?synchronized 它的底层是怎么去实现的?MySQL:1.MySQL 里面的索引是一个什么样的一个数据结构?为什么会选择 B+ 树的这种数据结构而不用 B 树?相对于 B 树有什么优势?2.索引优化的一些常用方案方法说一下,为什么最左前缀原则不能跳过中间列?为什么百分号放在前面就会产生索引失效?手撕:输入: 给定一个二叉树的根节点。每个节点除了左右子节点外,还有一个额外的 next 指针。目标: 填充所有节点的 next 指针,使其指向同一层级(同一深度)的下一个右侧节点。如果该节点已经是该层最右侧的节点,则 next 指针设置为 null。就给20 分钟,没做出来。复习:1.哈希冲突:拉链法和开放地址法。(如果当前索引已经被使用,那么按顺序检查下一个位置)。或者再哈希法,使用多个不同的哈希函数,第一个冲突的话就使用第二个函数,依此类推。2.红黑树是一种自平衡的二叉树,给每个节点添加红色或黑色的属性,确保插入或删除后能够保持基本平衡。原因: 哈希冲突严重情况下,一个桶内的元素全部形成链表,查找性能退化到 on,红黑树可以保证 logn,提升可靠性。3.hashmap 不是线程安全的是因为并发下对其进行读写操作,多个线程同时调用 put 向同一个桶写入数据,可能会出现写丢失或覆盖的现象。jdk1.7 中,扩容使用头插法迁移元素,可能会导致循环链表,此时再调用get 方***陷入循环,再 jdk1.8 中使用尾插法。其次,没有同步机制下,一个进程遍历 hashmap,另一个线程进行修改,可能会导致遍历失败,抛异常。4.concurrenthashmap在 jdk1.7 用分段锁解决线程问题,segment 数组,整个 map 分成多个 segment,可以独立加锁。jdk1.8 之后使用 cas + synchronized 来操作,Node 数组和链表红黑树,读的时候无锁,写的时候先尝试 cas,如果失败,就对当前桶节点进行 synchronized 加锁。cas 操作失败后,线程会不断 cas 自旋操作频繁失败的话放弃自旋转而阻塞。扩容机制:触发条件: 当数组中元素个数超过负载因子(默认为 0.75)乘以数组容量时触发扩容,新容量通常是旧容量的 2 倍.无锁化迁移: 扩容过程不是由单个线程一次性完成的,而是通过多线程并发地、增量地进行数据迁移.协助扩容(Help): 线程 A 触发扩容后,其他线程(如线程 B、C...)在进行 put、get 等操作时,如果发现有扩容任务正在进行,它们会主动参与进来,帮助进行部分数据的迁移工作. 这样可以快速分散扩容的压力.原子性保证:线程在迁移某个桶(Bucket)时,会使用 synchronized 锁住当前桶的头结点,确保该桶的数据迁移是安全的.迁移完成后,会在旧数组的该桶位置设置一个特殊的 ForwardingNode,用于指引其他线程到新数组中查找数据.5.synchronized是基于 jvm 实现的,依赖对象头中的 mark word,jdk1.6 以后引入锁升级机制,会进行自动释放锁,可重入,不过功能比较单一,不支持中断,不支持超时获取锁,非公平锁。reentrylock 是 juc 包提供的显示锁,基于 aqs 实现,需要在 finally 块中调用 unlock方法来释放锁,否则可能会造成死锁。功能更加强大,支持公平锁和非公平锁。state总结:对于独占锁(reentrylock)表示锁的重入次数,或者持有状态对于共享锁(semaphore)表示可用的共享资源数量。violate 保证对 state 变量的修改可以被所有线程看到。加锁成功状态:通过 cas 操作,把 state 从 0 设置到 1,如果已经持有锁,那么就 state + 1.try acquire 是 aqs 子类,该方法尝试获取资源。首先读取当前同步状态 state,如果无锁,尝试 cas 修改 state,返回 true。如果有锁,判断是不是自己的线程,是的话继续修改 state,否则返回 false;viloate总结:保证内存可见性,修改的时候会立即刷新到主存当中去。禁止指令重排序,保证变量之前的代码一定会提前完成。但是对于复合操作 i++,不保证原子性。synchronized 底层实现:是java 的隐式锁,主要涉及对象头的锁升级机制。字节码层面,有 monitorenter 和 monitorexit 两个字节码指令实现,enter 尝试获取对象锁的监视器,exit 是释放监视器。锁定的对象,状态记录在对象头,mark word,存储锁状态,哈希码,gc 年龄,以及相关指针或线程 id,通过修改 mark word 实现锁的升级和状态切换。锁升级机制:无锁--偏向锁--轻量级锁--重量级锁偏向锁:第一次获取,线程 id 记在 mark word 中,后续无同步操作。轻量级锁:cas 操作, 尝试将 mark word指向自己的栈中 Lock Record,失败就自旋。重量级锁:竞争激烈,长时间阻塞。涉及到阻塞和内核态装换,重量级锁依赖操作系统 mutex lock 实现,涉及操作系统层面的调度,开销比自旋要大得多。MySQL:1.使用 b+数优势是优化了磁盘 io 效率和范围查询能力。io效率高是因为非叶子节点体积小,单个磁盘页可以存更多的索引键,高度更矮。范围查询是所有叶子节点通过双向链表链接,可完成范围查询。性能也更加稳定。2.索引优化:建立索引,确保 where,orderby 使用合适的索引。遵循最左前缀原则,从最左侧列开始匹配。覆盖索引:尽量只查索引中包含的字段,避免回表。避免索引失效:进行函数运算,类型抓换或者模糊匹配。
查看10道真题和解析
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务